{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Fourier Neural Operator 1D"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\Users\\s1612415\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\tqdm\\auto.py:22: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
      "  from .autonotebook import tqdm as notebook_tqdm\n"
     ]
    }
   ],
   "source": [
    "## Imports \n",
    "import math\n",
    "import matplotlib.pyplot as plt \n",
    "import numpy as np \n",
    "import torch \n",
    "import torch.nn as nn\n",
    "from torch.nn import init\n",
    "from timeit import default_timer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "## Set seeds\n",
    "torch.manual_seed(0)\n",
    "np.random.seed(0)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Create Data"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Heat Equation:\n",
    "\n",
    "\\begin{align*}\n",
    "\\frac{\\partial u}{\\partial t} &= \\alpha \\frac{\\partial^2 u}{\\partial x^2} \\\\\n",
    "u(x, 0) &= x^2 \\\\\n",
    "u(0, t) &= u(1, t) = 2 - \\exp(-t)\n",
    "\\end{align*}\n",
    "\n",
    "Solution: \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "## TODO: Create Heat Equation Class"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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IBBQRkaGWltblZ6eHuvlAAAAA6b377hM0wAAgKGDzQgAAIgpNiMAACCm2IwAAICYYjMCAABiis0IAACIKTYjAAAgptiMAACAmGIzAgAAYiriOvhYuFgSGwgEYrwSAABg6uJ9O1zZe0JsRtra2iRJHo8nxisBAACRamtrU0ZGRq//PiF+N00wGNS3336r0aNHKylp4H6BTyAQkMfjUXNzM7/zxiKuc/RwraOD6xwdXOfosHmdHcdRW1ubxo8f3+2X6P5QQnwykpycrKuuusra66enp/MXPQq4ztHDtY4OrnN0cJ2jw9Z1vtInIhfxBVYAABBTbEYAAEBMDenNiMvlUnl5uVwuV6yXMqhxnaOHax0dXOfo4DpHRzxc54T4AisAABi8hvQnIwAAIPbYjAAAgJhiMwIAAGKKzQgAAIipQb8ZqaysVG5urtLS0lRQUKCGhoYrHv/mm29q8uTJSktL07Rp01RTUxOllSa2SK5zdXW15s6dq7Fjx2rs2LHyer1h/1xwSaR/py/atm2bkpKSNH/+fLsLHCQivc6nT5/W8uXLlZOTI5fLpWuuuYb/fhiI9Dpv2bJF1157rUaMGCGPx6OVK1fq7NmzUVptYvrwww81b948jR8/XklJSXrnnXfCnrN7927deOONcrlc+slPfqJXXnnF7iKdQWzbtm1Oamqqs3XrVufzzz93li5d6owZM8bx+/09Hv/xxx87KSkpztNPP+188cUXztq1a53hw4c7n376aZRXnlgivc4LFy50KisrnX379jn79+937rnnHicjI8P55z//GeWVJ55Ir/VFR44ccSZMmODMnTvX+eUvfxmdxSawSK9zR0eHM3PmTOf22293PvroI+fIkSPO7t27naampiivPLFEep1fe+01x+VyOa+99ppz5MgR57333nNycnKclStXRnnliaWmpsZZs2aN8/bbbzuSnB07dlzx+MOHDzsjR450SktLnS+++MJ57rnnnJSUFKe2ttbaGgf1ZmTWrFnO8uXLQ//c1dXljB8/3qmoqOjx+Lvuusu54447uj1XUFDg/OY3v7G6zkQX6XX+ofPnzzujR492Xn31VVtLHDT6cq3Pnz/vzJ4923nppZecJUuWsBkxEOl1fuGFF5yJEyc6nZ2d0VrioBDpdV6+fLnz85//vNtzpaWlzpw5c6yuczAx2Yw88sgjzvXXX9/tueLiYqeoqMjaugbtmKazs1ONjY3yer2h55KTk+X1elVfX9/jOfX19d2Ol6SioqJej0ffrvMPnTlzRufOndO4ceNsLXNQ6Ou1fuKJJ5SVlaV77703GstMeH25zu+++64KCwu1fPlyud1uTZ06VRs3blRXV1e0lp1w+nKdZ8+ercbGxtAo5/Dhw6qpqdHtt98elTUPFbG4FybEL8rri5aWFnV1dcntdnd73u1268CBAz2e4/P5ejze5/NZW2ei68t1/qFVq1Zp/Pjxl/3lR3d9udYfffSRXn75ZTU1NUVhhYNDX67z4cOH9fe//1133323ampqdOjQIT344IM6d+6cysvLo7HshNOX67xw4UK1tLTopptukuM4On/+vB544AE9+uij0VjykNHbvTAQCOj777/XiBEjBvw9B+0nI0gMmzZt0rZt27Rjxw6lpaXFejmDSltbmxYtWqTq6mplZmbGejmDWjAYVFZWll588UXl5+eruLhYa9asUVVVVayXNqjs3r1bGzdu1PPPP6+9e/fq7bff1s6dO7Vhw4ZYLw39NGg/GcnMzFRKSor8fn+35/1+v7Kzs3s8Jzs7O6Lj0bfrfNEzzzyjTZs26f3339cNN9xgc5mDQqTX+quvvtLRo0c1b9680HPBYFCSNGzYMB08eFCTJk2yu+gE1Je/0zk5ORo+fLhSUlJCz1133XXy+Xzq7OxUamqq1TUnor5c53Xr1mnRokW67777JEnTpk1Te3u77r//fq1Zs0bJyfz/64HQ270wPT3dyqci0iD+ZCQ1NVX5+fmqq6sLPRcMBlVXV6fCwsIezyksLOx2vCTt2rWr1+PRt+ssSU8//bQ2bNig2tpazZw5MxpLTXiRXuvJkyfr008/VVNTU+hx55136pZbblFTU5M8Hk80l58w+vJ3es6cOTp06FBosydJX375pXJyctiI9KIv1/nMmTOXbTgubgAdfs3agInJvdDaV2PjwLZt2xyXy+W88sorzhdffOHcf//9zpgxYxyfz+c4juMsWrTIWb16dej4jz/+2Bk2bJjzzDPPOPv373fKy8uJ9hqI9Dpv2rTJSU1Ndd566y3n+PHjoUdbW1usfoSEEem1/iHSNGYivc7Hjh1zRo8e7axYscI5ePCg89e//tXJyspynnzyyVj9CAkh0utcXl7ujB492vnLX/7iHD582Pnb3/7mTJo0ybnrrrti9SMkhLa2Nmffvn3Ovn37HEnO5s2bnX379jlff/214ziOs3r1amfRokWh4y9Gex9++GFn//79TmVlJdHe/nruueec//iP/3BSU1OdWbNmOf/4xz9C/+7mm292lixZ0u34N954w7nmmmuc1NRU5/rrr3d27twZ5RUnpkiu849//GNH0mWP8vLy6C88AUX6d/r/YjNiLtLrvGfPHqegoMBxuVzOxIkTnaeeeso5f/58lFedeCK5zufOnXMee+wxZ9KkSU5aWprj8XicBx980Pnuu++iv/AE8sEHH/T439yL13bJkiXOzTfffNk5eXl5TmpqqjNx4kTnz3/+s9U1JjkOn20BAIDYGbTfGQEAAImBzQgAAIgpNiMAACCm2IwAAICYYjMCAABiis0IAACIKTYjAAAgptiMAACAmGIzAgAAYorNCAAAiCk2IwAAIKbYjAAAgJj6/2LUcJyk48sFAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "## Steps in x direction\n",
    "nx = 200\n",
    "## Steps in t direction\n",
    "nt = 100\n",
    "\n",
    "h = 1 / nx ## Step size in x direction\n",
    "k = 1 / nt ## Step size in t direction\n",
    "\n",
    "alpha = 0.05\n",
    "r =  alpha * k / h**2\n",
    "\n",
    "X, T = np.meshgrid(np.linspace(0, 1, nx + 1), np.linspace(0, 1, nt + 1))\n",
    "\n",
    "plt.scatter(X, T)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "## Initial Condition\n",
    "beta = np.pi\n",
    "u0 = np.sin(beta * X[0]) \n",
    "\n",
    "## Boundary Conditions\n",
    "ux0 = 0 # u0[0] # T[:, 0]\n",
    "uxn = 0 # u0[-1] # 2 - np.exp(-T[:, -1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "A = np.zeros((nx - 1, nx - 1))\n",
    "B = np.zeros((nx - 1, nx - 1))\n",
    "\n",
    "for i in range(nx - 1):\n",
    "    A[i, i] = 2 + 2 * r\n",
    "    B[i, i] = 2 - 2 * r\n",
    "\n",
    "for i in range(nx - 2):\n",
    "    A[i + 1, i] = -r\n",
    "    A[i, i + 1] = -r\n",
    "    B[i + 1, i] = r\n",
    "    B[i, i + 1] = r\n",
    "\n",
    "Ainv = np.linalg.inv(A)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "## Compute Solution\n",
    "u = np.zeros((nt + 1, nx + 1))\n",
    "u[0] = u0\n",
    "u[:, 0] = ux0\n",
    "u[:, -1] = uxn\n",
    "\n",
    "# b = np.zeros(nx - 1)\n",
    "for j in range(1, nt + 1):\n",
    "    # b[0] = r * u[j - 1, 0] + r * u[j, 0]\n",
    "    # b[-1] = r * u[j - 1, -1] + r * u[j, -1]\n",
    "    u[j, 1:nx] = Ainv @ ((B @ u[j - 1, 1:nx])) # + b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAg8AAAGiCAYAAABgTyUPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAADT+UlEQVR4nO29e9glRXUu/vb+5obCDCIywxAQNCZIuAoymWgSE+c4GkMgmhw0HCHEQEIGI07ihfwEEjSMYkI4KoHEiJcnGo15ghoxeAiKHuOIcZATjUrUgHDEGTQeGIHAzHxdvz96V++q6rWqVlVX78u3+/2e/Xy7q6tW1d67u2r1Wu9aVSilFHr06NGjR48ePYQYTHoAPXr06NGjR4/ZQq889OjRo0ePHj2i0CsPPXr06NGjR48o9MpDjx49evTo0SMKvfLQo0ePHj169IhCrzz06NGjR48ePaLQKw89evTo0aNHjyj0ykOPHj169OjRIwq98tCjR48ePXr0iEKvPPTo0aNHjx49otArDz169OjRo8eM4jOf+QxOO+00rF+/HkVR4MMf/nCwza233opnPOMZWLlyJX70R38U7373u6P77ZWHHj169OjRY0bx8MMP44QTTsA111wjqn/XXXfhhS98IX7u534Od9xxBy666CL85m/+Jj7xiU9E9VtMcmOsa665Bm95y1uwc+dOnHDCCXjb296GU089dVLD6dGjR48ePWYWRVHghhtuwBlnnMHWee1rX4sbb7wRX/nKV+qyl7zkJXjggQdw0003ifta1magbfDBD34QW7duxXXXXYcNGzbg6quvxubNm3HnnXfikEMO8bYtyxL33XcfDjjgABRFMaYR9+jRo0ePWYRSCj/84Q+xfv16DAbdGdwfffRR7Nmzp7UcpVRjbVu5ciVWrlzZWvb27duxadMmq2zz5s246KKL4gSpCeHUU09VW7ZsqY8XFxfV+vXr1bZt24Jt7733XgWgf/Wv/tW/+lf/Er/uvffezta0//qv/1LrDlnIMs7999+/UXbZZZcFxwBA3XDDDd46T3va09QVV1xhld14440KgHrkkUfEn3ciloc9e/Zgx44duPjii+uywWCATZs2Yfv27Y36jz32GB577LH6WA09Lc/GL2D5sv2AYoBi+QJQFCiWLwOKAbCwDBgUKJYtAIMBsDAABgOowaA+VoMBsFAM/wOq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K2151n+zvjPmYviUW5Rm36qWWZTK+cxVeupiUTnjUFX66VKbtXSZGrk+dHrq4auSMXyVqtpQSqlRnbKsyo1jpeua5n21WJUP536lKjmqXgsWq7UCGIvlYp96DG1cD3qsroV95cqVWLlyJdnmqquuwnnnnYdzzz0XAHDdddfhxhtvxPXXX4/Xve51jfr/83/+Tzz/+c/Hq1/9agDAG97wBtx88814+9vfjuuuu040zpkI1XS/NP2lfhYfH0XEzIabqEePHj16TAg//OEPsWbNmk5kr1ixAuvWrcNnd8aZ/ynsv//+DQv7ZZddhj/8wz9s1N2zZw927NiBiy++uC4bDAbYtGlTbfF3sX37duuBHAA2b97cCIDwIavysG7dOgDArl27cOihh9blu3btwoknnljXcU0p+/btww9+8IO6fQjr16/HV7/6VRxzzDG49957sXr16jwfYMzYvXs3Dj/88Jn+DMDS+Bz9Z5geLIXPsRQ+A7A0Pof+DF/96lexfv36zvpZtWoV7rrrLuzZs6e1LKUUCsfEyFkdvv/972NxcZG0+H/9618n2+zcudPrIZAgq/Jw1FFHYd26dbjllltqZWH37t247bbbcMEFFwAANm7ciAceeAA7duzAySefDAD45Cc/ibIssWHDBlE/g8EAhx12GABg9erVM3tRayyFzwAsjc/Rf4bpwVL4HEvhMwBL43McdthhGAy6TW20atUqrFq1qtM+pgXRysNDDz2Eb37zm/XxXXfdhTvuuAMHHXQQjjjiCFx00UV44xvfiKc97Wk46qijcMkll2D9+vU444wzAABPf/rT8fznPx/nnXcerrvuOuzduxcXXnghXvKSl3SqFfbo0aNHjx5LDQcffDAWFhawa9cuq3zXrl2sNX/dunVR9SlEq2Ff/OIXcdJJJ+Gkk04CAGzduhUnnXQSLr30UgDAa17zGrziFa/A+eefj2c+85l46KGHcNNNN1na2Pve9z4cffTReO5zn4tf+IVfwLOf/Wz85V/+ZexQevTo0aNHj7nGihUrcPLJJ+OWW26py8qyxC233IKNGzeSbTZu3GjVB4Cbb76ZrU9CzSgeffRRddlll6lHH3100kNJxlL4DEotjc/Rf4bpwVL4HEvhMyi1ND7HUvgMIXzgAx9QK1euVO9+97vVV7/6VXX++eerAw88UO3cuVMppdTLXvYy9brXva6u/8///M9q2bJl6k/+5E/U1772NXXZZZep5cuXqy9/+cviPgulZiDrRo8ePXr06NGDxdvf/na85S1vwc6dO3HiiSfirW99a80jfM5znoMjjzwS7373u+v6H/rQh/D6178ed999N572tKfhyiuvxC/8wi+I++uVhx49evTo0aNHFPpdNXv06NGjR48eUeiVhx49evTo0aNHFHrloUePHj169OgRhV556NGjR48ePXpEYWaVh9jtRyeJbdu24ZnPfCYOOOAAHHLIITjjjDNw5513WnWe85znoCgK6/Xbv/3bExpxE3/4h3/YGN/RRx9dn3/00UexZcsWPPGJT8T++++PF7/4xY0kJNOAI488svE5iqLAli1bAEzn7/CZz3wGp512GtavX4+iKBr555VSuPTSS3HooYdiv/32w6ZNm/CNb3zDqvODH/wAZ511FlavXo0DDzwQL3/5y/HQQw9NxWfYu3cvXvva1+K4447D4x//eKxfvx5nn3027rvvPksG9du96U1vGttnCH0OAPj1X//1xhif//znW3Wm+bcAQN4fRVHgLW95S11n0r+FZE6VzEn33HMPXvjCF+Jxj3scDjnkELz61a/Gvn37xvY5ZhkzqTzEbj86aXz605/Gli1b8PnPfx4333wz9u7di+c973l4+OGHrXrnnXcevvvd79avK6+8ckIjpvETP/ET1vg++9nP1ude9apX4R/+4R/woQ99CJ/+9Kdx33334UUvetEER0vjX/7lX6zPcPPNNwMAfvVXf7WuM22/w8MPP4wTTjgB11xzDXn+yiuvxFvf+lZcd911uO222/D4xz8emzdvxqOPPlrXOeuss/Bv//ZvuPnmm/Gxj30Mn/nMZ3D++eeP6yN4P8MjjzyC22+/HZdccgluv/12/P3f/z3uvPNO/NIv/VKj7uWXX279Nq94xSvGMfwaod8CAJ7//OdbY/ybv/kb6/w0/xYArLF/97vfxfXXX4+iKPDiF7/YqjfJ30Iyp4bmpMXFRbzwhS/Enj178LnPfQ7vec978O53v7tOeNgjgJyJKsaFU089VW3ZsqU+XlxcVOvXr1fbtm2b4KjkuP/++xUA9elPf7ou+9mf/Vn1yle+cnKDCuCyyy5TJ5xwAnnugQceUMuXL1cf+tCH6rKvfe1rCoDavn37mEaYhle+8pXqqU99qirLUik1/b8DAHXDDTfUx2VZqnXr1qm3vOUtddkDDzygVq5cqf7mb/5GKaXUV7/6VQVA/cu//Etd5x//8R9VURTqO9/5ztjGruF+Bgpf+MIXFAD17W9/uy578pOfrP7sz/6s28FFgPoc55xzjjr99NPZNrP4W5x++unq53/+562yafst3DlVMid9/OMfV4PBoE6kpJRS1157rVq9erV67LHHxvsBZhAzZ3nQ249u2rSpLgttPzptePDBBwEABx10kFX+vve9DwcffDCOPfZYXHzxxXjkkUcmMTwW3/jGN7B+/Xo85SlPwVlnnYV77rkHALBjxw7s3bvX+k2OPvpoHHHEEVP9m+zZswd//dd/jd/4jd+wdrCb9t/BxF133YWdO3da3/2aNWuwYcOG+rvfvn07DjzwQJxyyil1nU2bNmEwGOC2224b+5glePDBB1EUBQ488ECr/E1vehOe+MQn4qSTTsJb3vKWqTQx33rrrTjkkEPw4z/+47jgggvwn//5n/W5Wfstdu3ahRtvvBEvf/nLG+em6bdw51TJnLR9+3Ycd9xx1u6Smzdvxu7du/Fv//ZvYxz9bCLrrprjQMr2o9OEsixx0UUX4VnPehaOPfbYuvzXfu3X8OQnPxnr16/Hv/7rv+K1r30t7rzzTvz93//9BEc7woYNG/Dud78bP/7jP47vfve7+KM/+iP89E//NL7yla9g586dWLFiRWOij93iddz48Ic/jAceeAC//uu/XpdN++/gQn+/vu11d+7ciUMOOcQ6v2zZMhx00EFT+fs8+uijeO1rX4uXvvSl1k6Ov/u7v4tnPOMZOOigg/C5z30OF198Mb773e/iqquumuBobTz/+c/Hi170Ihx11FH41re+hT/4gz/AC17wAmzfvh0LCwsz91u85z3vwQEHHNBwQU7Tb0HNqZI5iduWWp/r4cfMKQ+zji1btuArX/mKxRcAYPk8jzvuOBx66KF47nOfi29961t46lOfOu5hNvCCF7ygfn/88cdjw4YNePKTn4y//du/xX777TfBkaXjne98J17wghdYu7lO+++w1LF371789//+36GUwrXXXmud27p1a/3++OOPx4oVK/Bbv/Vb2LZtG1auXDnuoZJ4yUteUr8/7rjjcPzxx+OpT30qbr31Vjz3uc+d4MjScP311+Oss85qbDM9Tb8FN6f26BYz57ZI2X50WnDhhRfiYx/7GD71qU/hR37kR7x1dU5yc/vzacKBBx6IH/uxH8M3v/lNrFu3Dnv27MEDDzxg1Znm3+Tb3/42/umf/gm/+Zu/6a037b+D/n5998O6desaZOJ9+/bhBz/4wVT9Plpx+Pa3v42bb77ZsjpQ2LBhA/bt24e77757PANMwFOe8hQcfPDB9fUzK78FAPzv//2/ceeddwbvEWByvwU3p0rmJG5ban2uhx8zpzykbD86aSilcOGFF+KGG27AJz/5SRx11FHBNnfccQcA4NBDD+14dGl46KGH8K1vfQuHHnooTj75ZCxfvtz6Te68807cc889U/ubvOtd78IhhxyCF77whd560/47HHXUUVi3bp313e/evRu33XZb/d1v3LgRDzzwAHbs2FHX+eQnP4myLGvlaNLQisM3vvEN/NM//ROe+MQnBtvccccdGAwGDTfANOH//t//i//8z/+sr59Z+C003vnOd+Lkk0/GCSecEKw77t8iNKdK5qSNGzfiy1/+sqXMaaX1mGOOGcvnmGlMmLCZhND2o9OGCy64QK1Zs0bdeuut6rvf/W79euSRR5RSSn3zm99Ul19+ufriF7+o7rrrLvWRj3xEPeUpT1E/8zM/M+GRj/B7v/d76tZbb1V33XWX+ud//me1adMmdfDBB6v7779fKaXUb//2b6sjjjhCffKTn1Rf/OIX1caNG9XGjRsnPGoai4uL6ogjjlCvfe1rrfJp/R1++MMfqi996UvqS1/6kgKgrrrqKvWlL32pjkR405vepA488ED1kY98RP3rv/6rOv3009VRRx2l/uu//quW8fznP1+ddNJJ6rbbblOf/exn1dOe9jT10pe+dCo+w549e9Qv/dIvqR/5kR9Rd9xxh3WPaNb75z73OfVnf/Zn6o477lDf+ta31F//9V+rJz3pSerss88e22cIfY4f/vCH6vd///fV9u3b1V133aX+6Z/+ST3jGc9QT3va06ztoKf5t9B48MEH1eMe9zh17bXXNtpPw28RmlOVCs9J+/btU8cee6x63vOep+644w510003qSc96Unq4osvHtvnmGXMpPKglFJve9vb1BFHHKFWrFihTj31VPX5z39+0kNiAYB8vetd71JKKXXPPfeon/mZn1EHHXSQWrlypfrRH/1R9epXv1o9+OCDkx24gTPPPFMdeuihasWKFeqwww5TZ555pvrmN79Zn/+v//ov9Tu/8zvqCU94gnrc4x6nfvmXf1l997vfneCIeXziE59QANSdd95plU/r7/CpT32KvH7OOeccpVQVrnnJJZeotWvXqpUrV6rnPve5jc/2n//5n+qlL32p2n///dXq1avVueeeq374wx9OxWe466672HvkU5/6lFJKqR07dqgNGzaoNWvWqFWrVqmnP/3p6oorrrAW5Ul/jkceeUQ973nPU0960pPU8uXL1ZOf/GR13nnnNR5qpvm30PiLv/gLtd9++6kHHnig0X4afovQnKqUbE66++671Qte8AK13377qYMPPlj93u/9ntq7d+/YPscso9+Su0ePHj169OgRhZnjPPTo0aNHjx49JoteeejRo0ePHj16RKFXHnr06NGjR48eUeiVhx49evTo0aNHFHrloUePHj169OgRhV556NGjR48ePXpEoVceevTo0aNHjx5R6JWHHj169OjRo0cUeuWhR48ePXr06BGFXnno0aNHjx49ekShVx569OjRo0ePHlH4/wE2E4Rgl85vhwAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(u, aspect='auto')\n",
    "plt.colorbar()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "## Number of Samples \n",
    "n = 10000\n",
    "## Output\n",
    "data_in = []\n",
    "data_out = []\n",
    "\n",
    "## Generate Data\n",
    "for _ in range(n):\n",
    "    beta = np.random.uniform(-10, 10)\n",
    "    beta_vec = beta * np.ones(201) ##\n",
    "\n",
    "    u0 = np.sin(beta * X[0])\n",
    "\n",
    "    data_in.append([beta_vec , np.arange(0, 1.005, 0.005)]) ## \n",
    "\n",
    "    ## Create Solution Matrix\n",
    "    u = np.zeros((nt + 1, nx + 1))\n",
    "    u[0] = u0\n",
    "    u[:, 0] = ux0\n",
    "    u[:, -1] = uxn\n",
    "\n",
    "    # b = np.zeros(nx - 1)\n",
    "    for j in range(1, nt + 1):\n",
    "        # b[0] = r * u[j - 1, 0] + r * u[j, 0]\n",
    "        # b[-1] = r * u[j - 1, -1] + r * u[j, -1]\n",
    "        u[j, 1:nx] = Ainv @ ((B @ u[j - 1, 1:nx])) # + b)\n",
    "\n",
    "    data_out.append(u[-1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\s1612415\\AppData\\Local\\Temp\\ipykernel_19636\\974941267.py:1: UserWarning: Creating a tensor from a list of numpy.ndarrays is extremely slow. Please consider converting the list to a single numpy.ndarray with numpy.array() before converting to a tensor. (Triggered internally at ..\\torch\\csrc\\utils\\tensor_new.cpp:233.)\n",
      "  data_in = np.array(torch.tensor(data_in).float())\n"
     ]
    }
   ],
   "source": [
    "data_in = np.array(torch.tensor(data_in).float())\n",
    "data_out = np.array(torch.tensor(data_out).float().unsqueeze(1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "## Data Loader\n",
    "from torch.utils.data import Dataset, DataLoader\n",
    "import pandas as pd\n",
    "\n",
    "class CustomDataset(Dataset):\n",
    "    def __init__(self, t, x):\n",
    "        self.t = t\n",
    "        self.x = x\n",
    "\n",
    "    def __len__(self):\n",
    "        return len(self.t)\n",
    "    \n",
    "    def __getitem__(self, index):\n",
    "        return self.t[index], self.x[index]\n",
    "\n",
    "data = CustomDataset(data_in, data_out)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701, 0.9762701,\n",
       "        0.9762701, 0.9762701, 0.9762701],\n",
       "       [0.       , 0.005    , 0.01     , 0.015    , 0.02     , 0.025    ,\n",
       "        0.03     , 0.035    , 0.04     , 0.045    , 0.05     , 0.055    ,\n",
       "        0.06     , 0.065    , 0.07     , 0.075    , 0.08     , 0.085    ,\n",
       "        0.09     , 0.095    , 0.1      , 0.105    , 0.11     , 0.115    ,\n",
       "        0.12     , 0.125    , 0.13     , 0.135    , 0.14     , 0.145    ,\n",
       "        0.15     , 0.155    , 0.16     , 0.165    , 0.17     , 0.175    ,\n",
       "        0.18     , 0.185    , 0.19     , 0.195    , 0.2      , 0.205    ,\n",
       "        0.21     , 0.215    , 0.22     , 0.225    , 0.23     , 0.235    ,\n",
       "        0.24     , 0.245    , 0.25     , 0.255    , 0.26     , 0.265    ,\n",
       "        0.27     , 0.275    , 0.28     , 0.285    , 0.29     , 0.295    ,\n",
       "        0.3      , 0.305    , 0.31     , 0.315    , 0.32     , 0.325    ,\n",
       "        0.33     , 0.335    , 0.34     , 0.345    , 0.35     , 0.355    ,\n",
       "        0.36     , 0.365    , 0.37     , 0.375    , 0.38     , 0.385    ,\n",
       "        0.39     , 0.395    , 0.4      , 0.405    , 0.41     , 0.415    ,\n",
       "        0.42     , 0.425    , 0.43     , 0.435    , 0.44     , 0.445    ,\n",
       "        0.45     , 0.455    , 0.46     , 0.465    , 0.47     , 0.475    ,\n",
       "        0.48     , 0.485    , 0.49     , 0.495    , 0.5      , 0.505    ,\n",
       "        0.51     , 0.515    , 0.52     , 0.525    , 0.53     , 0.535    ,\n",
       "        0.54     , 0.545    , 0.55     , 0.555    , 0.56     , 0.565    ,\n",
       "        0.57     , 0.575    , 0.58     , 0.585    , 0.59     , 0.595    ,\n",
       "        0.6      , 0.605    , 0.61     , 0.615    , 0.62     , 0.625    ,\n",
       "        0.63     , 0.635    , 0.64     , 0.645    , 0.65     , 0.655    ,\n",
       "        0.66     , 0.665    , 0.67     , 0.675    , 0.68     , 0.685    ,\n",
       "        0.69     , 0.695    , 0.7      , 0.705    , 0.71     , 0.715    ,\n",
       "        0.72     , 0.725    , 0.73     , 0.735    , 0.74     , 0.745    ,\n",
       "        0.75     , 0.755    , 0.76     , 0.765    , 0.77     , 0.775    ,\n",
       "        0.78     , 0.785    , 0.79     , 0.795    , 0.8      , 0.805    ,\n",
       "        0.81     , 0.815    , 0.82     , 0.825    , 0.83     , 0.835    ,\n",
       "        0.84     , 0.845    , 0.85     , 0.855    , 0.86     , 0.865    ,\n",
       "        0.87     , 0.875    , 0.88     , 0.885    , 0.89     , 0.895    ,\n",
       "        0.9      , 0.905    , 0.91     , 0.915    , 0.92     , 0.925    ,\n",
       "        0.93     , 0.935    , 0.94     , 0.945    , 0.95     , 0.955    ,\n",
       "        0.96     , 0.965    , 0.97     , 0.975    , 0.98     , 0.985    ,\n",
       "        0.99     , 0.995    , 1.       ]], dtype=float32)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[0][0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2, 201)"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[0][0].shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "dataloader = DataLoader(data, batch_size=16, shuffle=True)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Build Network"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using cpu device.\n"
     ]
    }
   ],
   "source": [
    "## Get Device for Training\n",
    "device = 'cuda' if torch.cuda.is_available() else 'cpu'\n",
    "print(f'Using {device} device.')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "## Fourier Integral Kernel 1D\n",
    "class FourierIntegralKernel1D(nn.Module):\n",
    "    def __init__(self, in_channels: int, out_channels: int, modes: int):\n",
    "        super(FourierIntegralKernel1D, self).__init__()\n",
    "        '''\n",
    "        '''\n",
    "        self.in_channels = in_channels\n",
    "        self.out_channels = out_channels \n",
    "        self.modes = modes \n",
    "        ## Set (random) weights for the linear transform\n",
    "        # weights = torch.rand(self.modes, self.out_channels, self.in_channels, dtype=torch.cfloat) \n",
    "        # self.weights = nn.Parameter(weights / (self.in_channels * self.out_channels)) ## Optional: Scale weights\n",
    "        \n",
    "        self.n = in_channels\n",
    "        self.m = int(np.sqrt(self.n))\n",
    "\n",
    "        b = 0.1\n",
    "\n",
    "        self.T1 = nn.Parameter(b * torch.rand(self.m, self.m, self.m, dtype=torch.cfloat))\n",
    "        self.T2 = nn.Parameter(b * torch.rand(self.m, self.m, self.m, dtype=torch.cfloat))\n",
    "        # self.T3 = nn.Parameter(b * torch.rand(self.m, self.m, self.m, dtype=torch.cfloat))\n",
    "        # self.T4 = nn.Parameter(b * torch.rand(self.m, self.m, self.m, dtype=torch.cfloat))\n",
    "        # self.T5 = nn.Parameter(b * torch.rand(self.m, self.m, self.m, dtype=torch.cfloat))\n",
    "        # self.T6 = nn.Parameter(b * torch.rand(self.m, self.m, self.m, dtype=torch.cfloat))\n",
    "        # self.T7 = nn.Parameter(b * torch.rand(self.m, self.m, self.m, dtype=torch.cfloat))\n",
    "        # self.T8 = nn.Parameter(b * torch.rand(self.m, self.m, self.m, dtype=torch.cfloat))\n",
    " \n",
    "        self.A1 = nn.Parameter(b * torch.rand(self.m, self.m, dtype=torch.cfloat))\n",
    "        self.A2 = nn.Parameter(b * torch.rand(self.m, self.m, dtype=torch.cfloat))\n",
    "        self.A3 = nn.Parameter(b * torch.rand(self.m, self.m, dtype=torch.cfloat))\n",
    "        self.A4 = nn.Parameter(b * torch.rand(self.m, self.m, dtype=torch.cfloat))\n",
    "        self.A5 = nn.Parameter(b * torch.rand(self.m, self.m, dtype=torch.cfloat))\n",
    "        self.A6 = nn.Parameter(b * torch.rand(self.m, self.m, dtype=torch.cfloat))\n",
    "        self.A7 = nn.Parameter(b * torch.rand(self.m, self.m, dtype=torch.cfloat))\n",
    "        self.A8 = nn.Parameter(b * torch.rand(self.m, self.m, dtype=torch.cfloat))\n",
    "\n",
    "        self.B1 = nn.Parameter(b * torch.rand(self.m, self.m, dtype=torch.cfloat))\n",
    "        self.B2 = nn.Parameter(b * torch.rand(self.m, self.m, dtype=torch.cfloat))\n",
    "        self.B3 = nn.Parameter(b * torch.rand(self.m, self.m, dtype=torch.cfloat))\n",
    "        self.B4 = nn.Parameter(b * torch.rand(self.m, self.m, dtype=torch.cfloat))\n",
    "        self.B5 = nn.Parameter(b * torch.rand(self.m, self.m, dtype=torch.cfloat))\n",
    "        self.B6 = nn.Parameter(b * torch.rand(self.m, self.m, dtype=torch.cfloat))\n",
    "        self.B7 = nn.Parameter(b * torch.rand(self.m, self.m, dtype=torch.cfloat))\n",
    "        self.B8 = nn.Parameter(b * torch.rand(self.m, self.m, dtype=torch.cfloat))\n",
    "        \n",
    "        self.perm = torch.zeros(self.n, self.n, dtype=torch.cfloat)\n",
    "        for i in np.arange(0, self.m):\n",
    "            for j in np.arange(0, self.m):\n",
    "                row = torch.zeros(self.n)\n",
    "                row[i + self.m*j] = 1\n",
    "                self.perm[self.m*i + j] = row\n",
    "                \n",
    "        # self.reset_parameters()\n",
    "\n",
    "    def reset_parameters(self):\n",
    "        # Mimic init.kaiming_uniform: https://github.com/pytorch/pytorch/blob/24087d07ca7ffa244575d259711dd7c99245a67a/torch/nn/init.py#L360\n",
    "        # for i in [\n",
    "        #     self.T1, self.T2, self.T3, self.T4,# self.T5, self.T6, self.T7, self.T8,\n",
    "        #     self.A1, self.A2, self.A3, self.A4,# self.A5, self.A6, self.A7, self.A8,\n",
    "        #     self.B1, self.B2, self.B3, self.B4#, self.B5, self.B6, self.B7, self.B8\n",
    "        # ]:\n",
    "        #     fan_in = i.shape[-1]\n",
    "        #     gain = init.calculate_gain(nonlinearity='relu')\n",
    "        #     std = gain / math.sqrt(fan_in)\n",
    "        #     bound = math.sqrt(3.0) * std  # Calculate uniform bounds from standard deviation\n",
    "        #     with torch.no_grad():\n",
    "        #         i.uniform_(-bound, bound)\n",
    "        for i in [\n",
    "            self.T1, self.T2, self.T3, self.T4, self.T5, self.T6, self.T7, self.T8\n",
    "        ]:\n",
    "            i / (self.m * self.m)\n",
    "        for i in [\n",
    "            self.A1, self.A2, self.A3, self.A4, self.A5, self.A6, self.A7, self.A8,\n",
    "            self.B1, self.B2, self.B3, self.B4, self.B5, self.B6, self.B7, self.B8\n",
    "        ]:\n",
    "            i / self.m\n",
    "\n",
    "    def blockdiag_T(self):\n",
    "        T = torch.zeros(self.modes, self.n, self.n, dtype=torch.cfloat)\n",
    "        T[:self.m, :self.m, :self.m] = self.T1\n",
    "        T[self.m:2*self.m, self.m:2*self.m, self.m:2*self.m] = self.T2\n",
    "        # T[2*self.m:3*self.m, 2*self.m:3*self.m, 2*self.m:3*self.m] = self.T3\n",
    "        # T[3*self.m:4*self.m, 3*self.m:4*self.m, 3*self.m:4*self.m] = self.T4\n",
    "        # T[4*self.m:5*self.m, 4*self.m:5*self.m, 4*self.m:5*self.m] = self.T5\n",
    "        # T[5*self.m:6*self.m, 5*self.m:6*self.m, 5*self.m:6*self.m] = self.T6\n",
    "        # T[6*self.m:7*self.m, 6*self.m:7*self.m, 6*self.m:7*self.m] = self.T7\n",
    "        # T[7*self.m:8*self.m, 7*self.m:8*self.m, 7*self.m:8*self.m] = self.T8\n",
    "        return T\n",
    "        \n",
    "    def blockdiag_A(self):\n",
    "        A = torch.zeros(self.n, self.n, dtype=torch.cfloat)\n",
    "        A[:self.m, :self.m] = self.A1\n",
    "        A[self.m:2*self.m, self.m:2*self.m] = self.A2\n",
    "        A[2*self.m:3*self.m, 2*self.m:3*self.m] = self.A3\n",
    "        A[3*self.m:4*self.m, 3*self.m:4*self.m] = self.A4\n",
    "        A[4*self.m:5*self.m, 4*self.m:5*self.m] = self.A5\n",
    "        A[5*self.m:6*self.m, 5*self.m:6*self.m] = self.A6\n",
    "        A[6*self.m:7*self.m, 6*self.m:7*self.m] = self.A7\n",
    "        A[7*self.m:8*self.m, 7*self.m:8*self.m] = self.A8\n",
    "        return A\n",
    "\n",
    "    def blockdiag_B(self):\n",
    "        B = torch.zeros(self.n, self.n, dtype=torch.cfloat)\n",
    "        B[:self.m, :self.m] = self.B1\n",
    "        B[self.m:2*self.m, self.m:2*self.m] = self.B2\n",
    "        B[2*self.m:3*self.m, 2*self.m:3*self.m] = self.B3\n",
    "        B[3*self.m:4*self.m, 3*self.m:4*self.m] = self.B4\n",
    "        B[4*self.m:5*self.m, 4*self.m:5*self.m] = self.B5\n",
    "        B[5*self.m:6*self.m, 5*self.m:6*self.m] = self.B6\n",
    "        B[6*self.m:7*self.m, 6*self.m:7*self.m] = self.B7\n",
    "        B[7*self.m:8*self.m, 7*self.m:8*self.m] = self.B8\n",
    "        return B\n",
    "        \n",
    "    def forward(self, v: torch.Tensor) -> torch.Tensor:\n",
    "        '''\n",
    "        FFT -> Linear Transform -> Inverse FFT\n",
    "        '''\n",
    "        PAPT = torch.einsum('ik, jkl -> jil', self.perm@self.blockdiag_A()@self.perm, self.blockdiag_T())\n",
    "        PBPT = torch.einsum('il, jkl -> jik', self.perm@self.blockdiag_B()@self.perm, PAPT)\n",
    "\n",
    "        ## FFT\n",
    "        v_rfft = torch.fft.rfft(v) \n",
    "        \n",
    "        ## Linear Transform \n",
    "        lv_rfft = torch.zeros(v_rfft.shape, dtype=torch.cfloat)\n",
    "        lv_rfft[:, :, :self.modes] = torch.einsum('koi, bki -> bko', PBPT, v_rfft[:, :, :self.modes].permute(0, 2, 1)).permute(0, 2, 1) ## TODO: Should I have 5 dimensions here?\n",
    "        \n",
    "        ## Inverse FFT\n",
    "        v2 = torch.fft.irfft(lv_rfft, n=v.shape[-1])\n",
    "        return v2\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "## Fourier Network Operator 1D\n",
    "class FourierNetworkOperator1D(nn.Module):\n",
    "    def __init__(self, da: int, du: int, width: int, modes: int):\n",
    "        super(FourierNetworkOperator1D, self).__init__()\n",
    "        '''\n",
    "        '''\n",
    "        self.width = width\n",
    "        self.modes = modes\n",
    "\n",
    "        ## P: Lifts the lower dimensional function to higher dimensional space\n",
    "        self.P = nn.Conv1d(da, self.width, 1) ## TODO: Change da\n",
    "\n",
    "        ## K: Fourier integral kernel operator\n",
    "        self.k0 = FourierIntegralKernel1D(self.width, self.width, self.modes)\n",
    "        self.k1 = FourierIntegralKernel1D(self.width, self.width, self.modes)\n",
    "        self.k2 = FourierIntegralKernel1D(self.width, self.width, self.modes)\n",
    "        self.k3 = FourierIntegralKernel1D(self.width, self.width, self.modes)\n",
    "        # self.k4 = FourierIntegralKernel1D(self.width, self.width, self.modes)\n",
    "        # self.k5 = FourierIntegralKernel1D(self.width, self.width, self.modes)\n",
    "        # self.k6 = FourierIntegralKernel1D(self.width, self.width, self.modes)\n",
    "        # self.k7 = FourierIntegralKernel1D(self.width, self.width, self.modes)\n",
    "        # self.k8 = FourierIntegralKernel1D(self.width, self.width, self.modes)\n",
    "        # self.k9 = FourierIntegralKernel1D(self.width, self.width, self.modes)\n",
    "\n",
    "        ## W: Pointwise linear operator\n",
    "        self.w0 = nn.Conv1d(self.width, self.width, 1)\n",
    "        self.w1 = nn.Conv1d(self.width, self.width, 1)\n",
    "        self.w2 = nn.Conv1d(self.width, self.width, 1)\n",
    "        self.w3 = nn.Conv1d(self.width, self.width, 1)\n",
    "        # self.w4 = nn.Conv1d(self.width, self.width, 1)\n",
    "        # self.w5 = nn.Conv1d(self.width, self.width, 1)\n",
    "        # self.w6 = nn.Conv1d(self.width, self.width, 1)\n",
    "        # self.w7 = nn.Conv1d(self.width, self.width, 1)\n",
    "        # self.w8 = nn.Conv1d(self.width, self.width, 1)\n",
    "        # self.w9 = nn.Conv1d(self.width, self.width, 1)\n",
    "\n",
    "        ## Q: Projects the higher dimensional function to lower dimensional space\n",
    "        self.Q = nn.Conv1d(self.width, du, 1) ## TODO: Change du\n",
    "\n",
    "    def forward(self, x: torch.Tensor) -> torch.Tensor:\n",
    "        '''\n",
    "        '''\n",
    "        ## P\n",
    "        x = self.P(x)\n",
    "\n",
    "        ## Fourier Layer #0\n",
    "        ## K\n",
    "        x1 = self.k0(x)\n",
    "        ## W\n",
    "        x2 = self.w0(x)\n",
    "        ## Sum\n",
    "        x = x1 + x2\n",
    "        ## Gelu\n",
    "        x = nn.functional.gelu(x)\n",
    "        # x = nn.functional.gelu(x1)\n",
    "        # x = nn.functional.gelu(x2)\n",
    "\n",
    "        ## Fourier Layer #1\n",
    "        ## K\n",
    "        x1 = self.k1(x)\n",
    "        ## W\n",
    "        x2 = self.w1(x)\n",
    "        ## Sum \n",
    "        x = x1 + x2\n",
    "        ## Gelu\n",
    "        x = nn.functional.gelu(x)\n",
    "        # x = nn.functional.gelu(x1)\n",
    "        # x = nn.functional.gelu(x2)\n",
    "\n",
    "        ## Fourier Layer #2\n",
    "        ## K\n",
    "        x1 = self.k2(x)\n",
    "        ## W\n",
    "        x2 = self.w2(x)\n",
    "        ## Sum\n",
    "        x = x1 + x2\n",
    "        ## Gelu\n",
    "        x = nn.functional.gelu(x)\n",
    "        # x = nn.functional.gelu(x1)\n",
    "        # x = nn.functional.gelu(x2)\n",
    "\n",
    "        ## Fourier Layer #3\n",
    "        ## K\n",
    "        x1 = self.k3(x)\n",
    "        ## W\n",
    "        x2 = self.w3(x)\n",
    "        ## Sum\n",
    "        x = x1 + x2\n",
    "        ## Gelu\n",
    "        x = nn.functional.gelu(x)\n",
    "        # x = nn.functional.gelu(x1)\n",
    "        # x = nn.functional.gelu(x2)\n",
    "\n",
    "        # ## Fourier Layer #4\n",
    "        # ## K\n",
    "        # x1 = self.k4(x)\n",
    "        # ## W\n",
    "        # x2 = self.w4(x)\n",
    "        # ## Sum\n",
    "        # x = x1 + x2\n",
    "        # ## Gelu\n",
    "        # x = nn.functional.gelu(x)\n",
    "        # # x = nn.functional.gelu(x1)\n",
    "        # # x = nn.functional.gelu(x2)\n",
    "\n",
    "        # ## Fourier Layer #5\n",
    "        # ## K\n",
    "        # x1 = self.k5(x)\n",
    "        # ## W\n",
    "        # x2 = self.w5(x)\n",
    "        # ## Sum\n",
    "        # x = x1 + x2\n",
    "        # ## Gelu\n",
    "        # x = nn.functional.gelu(x)\n",
    "        # # x = nn.functional.gelu(x1)\n",
    "        # # x = nn.functional.gelu(x2)\n",
    "\n",
    "        # ## Fourier Layer #6\n",
    "        # ## K\n",
    "        # x1 = self.k6(x)\n",
    "        # ## W\n",
    "        # x2 = self.w6(x)\n",
    "        # ## Sum\n",
    "        # x = x1 + x2\n",
    "        # ## Gelu\n",
    "        # x = nn.functional.gelu(x)\n",
    "        # # x = nn.functional.gelu(x1)\n",
    "        # # x = nn.functional.gelu(x2)\n",
    "\n",
    "        # ## Fourier Layer #7\n",
    "        # ## K\n",
    "        # x1 = self.k7(x)\n",
    "        # ## W\n",
    "        # x2 = self.w7(x)\n",
    "        # ## Sum\n",
    "        # x = x1 + x2\n",
    "        # ## Gelu\n",
    "        # x = nn.functional.gelu(x)\n",
    "        # # x = nn.functional.gelu(x1)\n",
    "        # # x = nn.functional.gelu(x2)\n",
    "\n",
    "        # ## Fourier Layer #8\n",
    "        # ## K\n",
    "        # x1 = self.k8(x)\n",
    "        # ## W\n",
    "        # x2 = self.w8(x)\n",
    "        # ## Sum\n",
    "        # x = x1 + x2\n",
    "        # ## Gelu\n",
    "        # x = nn.functional.gelu(x)\n",
    "        # # x = nn.functional.gelu(x1)\n",
    "        # # x = nn.functional.gelu(x2)\n",
    "\n",
    "        # ## Fourier Layer #9\n",
    "        # ## K\n",
    "        # x1 = self.k9(x)\n",
    "        # ## W\n",
    "        # x2 = self.w9(x)\n",
    "        # ## Sum\n",
    "        # x = x1 + x2\n",
    "        # ## Gelu\n",
    "        # x = nn.functional.gelu(x)\n",
    "        # # x = nn.functional.gelu(x1)\n",
    "        # # x = nn.functional.gelu(x2)\n",
    "\n",
    "        ## Q\n",
    "        x = self.Q(x)\n",
    "        return x\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "# import operator\n",
    "# from functools import reduce\n",
    "\n",
    "# def count_parameters(model):\n",
    "#     c = 0\n",
    "#     for p in list(model.parameters()):\n",
    "#         c += reduce(operator.mul, list(p.size() + (2, ) if p.is_complex() else p.size()))\n",
    "#     return c\n",
    "\n",
    "# model = FourierNetworkOperator1D(2, 1, width=64, modes=4)\n",
    "# print(f'Number of parameters: {count_parameters(model)}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "P.weight: 128\n",
      "P.bias: 64\n",
      "k0.T1: 512\n",
      "k0.T2: 512\n",
      "k0.A1: 64\n",
      "k0.A2: 64\n",
      "k0.A3: 64\n",
      "k0.A4: 64\n",
      "k0.A5: 64\n",
      "k0.A6: 64\n",
      "k0.A7: 64\n",
      "k0.A8: 64\n",
      "k0.B1: 64\n",
      "k0.B2: 64\n",
      "k0.B3: 64\n",
      "k0.B4: 64\n",
      "k0.B5: 64\n",
      "k0.B6: 64\n",
      "k0.B7: 64\n",
      "k0.B8: 64\n",
      "k1.T1: 512\n",
      "k1.T2: 512\n",
      "k1.A1: 64\n",
      "k1.A2: 64\n",
      "k1.A3: 64\n",
      "k1.A4: 64\n",
      "k1.A5: 64\n",
      "k1.A6: 64\n",
      "k1.A7: 64\n",
      "k1.A8: 64\n",
      "k1.B1: 64\n",
      "k1.B2: 64\n",
      "k1.B3: 64\n",
      "k1.B4: 64\n",
      "k1.B5: 64\n",
      "k1.B6: 64\n",
      "k1.B7: 64\n",
      "k1.B8: 64\n",
      "k2.T1: 512\n",
      "k2.T2: 512\n",
      "k2.A1: 64\n",
      "k2.A2: 64\n",
      "k2.A3: 64\n",
      "k2.A4: 64\n",
      "k2.A5: 64\n",
      "k2.A6: 64\n",
      "k2.A7: 64\n",
      "k2.A8: 64\n",
      "k2.B1: 64\n",
      "k2.B2: 64\n",
      "k2.B3: 64\n",
      "k2.B4: 64\n",
      "k2.B5: 64\n",
      "k2.B6: 64\n",
      "k2.B7: 64\n",
      "k2.B8: 64\n",
      "k3.T1: 512\n",
      "k3.T2: 512\n",
      "k3.A1: 64\n",
      "k3.A2: 64\n",
      "k3.A3: 64\n",
      "k3.A4: 64\n",
      "k3.A5: 64\n",
      "k3.A6: 64\n",
      "k3.A7: 64\n",
      "k3.A8: 64\n",
      "k3.B1: 64\n",
      "k3.B2: 64\n",
      "k3.B3: 64\n",
      "k3.B4: 64\n",
      "k3.B5: 64\n",
      "k3.B6: 64\n",
      "k3.B7: 64\n",
      "k3.B8: 64\n",
      "w0.weight: 4096\n",
      "w0.bias: 64\n",
      "w1.weight: 4096\n",
      "w1.bias: 64\n",
      "w2.weight: 4096\n",
      "w2.bias: 64\n",
      "w3.weight: 4096\n",
      "w3.bias: 64\n",
      "Q.weight: 64\n",
      "Q.bias: 1\n",
      "Total Trainable Params: 25089\n"
     ]
    }
   ],
   "source": [
    "def count_parameters(model):\n",
    "    total_params = 0\n",
    "    for name, parameter in model.named_parameters():\n",
    "        if not parameter.requires_grad: continue\n",
    "        params = parameter.numel()\n",
    "        print(f'{name}: {params}')\n",
    "        total_params+=params\n",
    "    print(f\"Total Trainable Params: {total_params}\")\n",
    "    return total_params\n",
    "    \n",
    "model = FourierNetworkOperator1D(2, 1, width=64, modes=16)\n",
    "num_parameters = count_parameters(model)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor(-0.0002+0.0002j, grad_fn=<MeanBackward0>)\n",
      "tensor(0.0004, grad_fn=<StdBackward0>)\n"
     ]
    }
   ],
   "source": [
    "PAPT = torch.einsum('ik, jkl -> jil', model.k0.perm@model.k0.blockdiag_A()@model.k0.perm, model.k0.blockdiag_T())\n",
    "PBPT = torch.einsum('il, jkl -> jik', model.k0.perm@model.k0.blockdiag_B()@model.k0.perm, PAPT)\n",
    "print(torch.mean(PBPT))\n",
    "print(torch.std(PBPT))"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "## Model Parameters\n",
    "learning_rate = 1e-3\n",
    "epochs = 5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "## Loss Function\n",
    "loss_function = nn.MSELoss()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "## Optimizer \n",
    "optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "vec = torch.from_numpy(np.arange(0, 1.005, 0.005)).float().unsqueeze(0).unsqueeze(0) ##"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "beta: 6.143844901770926\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "## Test 0\n",
    "beta0 = np.random.uniform(-10, 10)\n",
    "print(f'beta: {beta0}')\n",
    "beta0_vec = torch.from_numpy(beta0 * np.ones(201)).float().unsqueeze(0).unsqueeze(0) ##\n",
    "\n",
    "u0 = torch.from_numpy(np.sin(beta0 * X[0])).float().unsqueeze(0).unsqueeze(0)\n",
    "\n",
    "u = np.zeros((nt + 1, nx + 1))\n",
    "u[0] = u0\n",
    "u[:, 0] = ux0\n",
    "u[:, -1] = uxn\n",
    "\n",
    "b = np.zeros(nx - 1)\n",
    "for j in range(1, nt + 1):\n",
    "    b[0] = r * u[j - 1, 0] + r * u[j, 0]\n",
    "    b[-1] = r * u[j - 1, -1] + r * u[j, -1]\n",
    "    u[j, 1:nx] = Ainv @ ((B @ u[j - 1, 1:nx]) + b)\n",
    "\n",
    "plt.scatter(np.linspace(0, 1, nx + 1), u[-1], alpha=0.5)\n",
    "# plt.scatter(np.linspace(0, 1, nx + 1), model(torch.cat((beta0_vec, u0), 1)).detach())\n",
    "plt.scatter(np.linspace(0, 1, nx + 1), model(torch.cat((beta0_vec, vec), 1)).detach())\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "beta: 4.115054390602959\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "## Test 1\n",
    "beta1 = np.random.uniform(-10, 10)\n",
    "print(f'beta: {beta1}')\n",
    "beta1_vec = torch.from_numpy(beta1 * np.ones(201)).float().unsqueeze(0).unsqueeze(0) ##\n",
    "\n",
    "u0 = torch.from_numpy(np.sin(beta1 * X[0])).float().unsqueeze(0).unsqueeze(0)\n",
    "\n",
    "u = np.zeros((nt + 1, nx + 1))\n",
    "u[0] = u0\n",
    "u[:, 0] = ux0\n",
    "u[:, -1] = uxn\n",
    "\n",
    "b = np.zeros(nx - 1)\n",
    "for j in range(1, nt + 1):\n",
    "    b[0] = r * u[j - 1, 0] + r * u[j, 0]\n",
    "    b[-1] = r * u[j - 1, -1] + r * u[j, -1]\n",
    "    u[j, 1:nx] = Ainv @ ((B @ u[j - 1, 1:nx]) + b)\n",
    "\n",
    "plt.scatter(np.linspace(0, 1, nx + 1), u[-1], alpha=0.5)\n",
    "# plt.scatter(np.linspace(0, 1, nx + 1), model(torch.cat((beta1_vec, u0), 1)).detach())\n",
    "plt.scatter(np.linspace(0, 1, nx + 1), model(torch.cat((beta1_vec, vec), 1)).detach())\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "beta: -9.968876041407357\n"
     ]
    },
    {
     "data": {
      "image/png": "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Ze/cuXOGz3xuKfR9/sAHPmB/61vfsv/85z/be/bssW+88Ua7vLzcPnr06Ayf+dxS6PucdeDAAXvRokX2xRdfbP/lX/7lzJzsHFbo+5xKpeyzzz7bvvLKK+0//OEP9oEDB+wtW7bYO3bsmOEzn1sKfZ9/8pOf2B6Px/7JT35iHzhwwH788cftxsZG+9Zbb53hM59bNm3aZP/DP/yD/ctf/tIG7F/96lfjHv/GG2/Yfr/fvu222+zdu3fb3/zmN21N0+zNmzcX9TwlwCnQueeea9988825v5umaTc1Ndn33nvvqMdff/319lVXXTXstvPOO8/+X//rfxX1POe6Qt/nkQzDsEOhkP3DH/6wWKc4L0zmfTYMw77gggvs//qv/7I/9KEPSYCTh0Lf529/+9v28uXL7XQ6PVOnOC8U+j7ffPPN9jvf+c5ht9122232hRdeWNTznE/yCXA+85nP2Keffvqw29773vfal19+eRHPzLZli6oA6XSa7du3s27dutxtqqqybt06tm3bNup9tm3bNux4gMsvv3zM48Xk3ueR4vE4mUyGqqqqYp3mnDfZ9/mf//mfqaur46abbpqJ05zzJvM+b9y4kbVr13LzzTdTX1/PGWecwT333INpmjN12nPOZN7nCy64gO3bt+e2sd544w02bdrElVdeOSPnvFDM1nWwqMM255vu7m5M06S+vn7Y7fX19ezdu3fU+7S3t496fHt7e9HOc66bzPs80h133EFTU9MJ/6nEcZN5n//whz/wve99jx07dszAGc4Pk3mf33jjDZ566iluuOEGNm3aREtLCx//+MfJZDJ8/vOfn4nTnnMm8z5/4AMfoLu7m4suugjbtjEMg49+9KPcfffdM3HKC8ZY18FIJEIikcDn8xXleWUFR8w7X/ziF/npT3/Kr371K7xe72yfzrwRjUb527/9W7773e9SU1Mz26czr1mWRV1dHf/5n//JWWedxXvf+17+4R/+ge985zuzfWrzypYtW7jnnnu4//77eemll/jlL3/JY489xhe+8IXZPjUxDWQFpwA1NTVomkZHR8ew2zs6OmhoaBj1Pg0NDQUdLyb3Pmd95Stf4Ytf/CK/+93vOPPMM4t5mnNeoe/z/v37OXjwIO9+97tzt1mWBcD/394du7QOhVEAP0/rrUvFSehQhQZEEUFQlOJQ/Acc3UIX6SCuQkEkggoi4iLOuiniqCBKcVLcUhAsFRF0sZtD0UHF8ybD86lgymv7Es4PsqQ38N2P0BwuuSQSiaBUKsGyrNoWHUDV3M/xeBwtLS1obm72zvX29qJcLuP5+RnGmJrWHETV9Hlubg62bWNychIA0N/fj8fHR2SzWczOzqKpSWsA/8J3z8G2traard4AWsHxxRiDwcFB5PN579zb2xvy+TxSqdSX16RSqQ/jAeD4+Pjb8VJdnwFgZWUFCwsLODw8xNDQUD1KDTS/fe7p6cHFxQUKhYJ3jI+PY2xsDIVCAYlEop7lB0Y19/Po6Ciur6+9AAkAV1dXiMfjCjffqKbPT09Pn0LMe6ikPtP4zzTsOVjTV5hDaGdnh9FolFtbW7y8vGQ2m2V7ezvL5TJJ0rZt5nI5b/zp6SkjkQhXV1dZLBbpOI62if+A3z4vLy/TGMO9vT3e3997R6VSadQUAsFvn/+mXVQ/47fPd3d3jMVinJ6eZqlU4v7+Pjs6Ori4uNioKQSC3z47jsNYLMbt7W3e3Nzw6OiIlmVxYmKiUVMIhEqlQtd16bouAXBtbY2u6/L29pYkmcvlaNu2N/59m/jMzAyLxSI3Nja0Tfx/tb6+zs7OThpjODw8zPPzc++3dDrNTCbzYfzu7i67u7tpjGFfXx8PDg7qXHEw+elzV1cXAXw6HMepf+EB4/d+/pMCzs/57fPZ2RlHRkYYjUaZTCa5tLTE19fXOlcdPH76/PLywvn5eVqWxdbWViYSCU5NTfHh4aH+hQfIycnJl/+3773NZDJMp9OfrhkYGKAxhslkkpubmzWv8xepdTgREREJF72DIyIiIqGjgCMiIiKho4AjIiIioaOAIyIiIqGjgCMiIiKho4AjIiIioaOAIyIiIqGjgCMiIiKho4AjIiIioaOAIyIiIqGjgCMiIiKho4AjIiIiofMblC9FaS4HH2MAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "## Test 2\n",
    "beta2 = np.random.uniform(-10, 10)\n",
    "print(f'beta: {beta2}')\n",
    "beta2_vec = torch.from_numpy(beta2 * np.ones(201)).float().unsqueeze(0).unsqueeze(0) ##\n",
    "\n",
    "u0 = torch.from_numpy(np.sin(beta2 * X[0])).float().unsqueeze(0).unsqueeze(0)\n",
    "\n",
    "u = np.zeros((nt + 1, nx + 1))\n",
    "u[0] = u0\n",
    "u[:, 0] = ux0\n",
    "u[:, -1] = uxn\n",
    "\n",
    "b = np.zeros(nx - 1)\n",
    "for j in range(1, nt + 1):\n",
    "    b[0] = r * u[j - 1, 0] + r * u[j, 0]\n",
    "    b[-1] = r * u[j - 1, -1] + r * u[j, -1]\n",
    "    u[j, 1:nx] = Ainv @ ((B @ u[j - 1, 1:nx]) + b)\n",
    "\n",
    "plt.scatter(np.linspace(0, 1, nx + 1), u[-1], alpha=0.5)\n",
    "# plt.scatter(np.linspace(0, 1, nx + 1), model(torch.cat((beta2_vec, u0), 1)).detach())\n",
    "plt.scatter(np.linspace(0, 1, nx + 1), model(torch.cat((beta2_vec, vec), 1)).detach())\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "## Training Loop\n",
    "def train_loop(dataloader, model, loss_function, optimizer):\n",
    "    size = len(dataloader.dataset)\n",
    "    for batch, (t, x) in enumerate(dataloader):\n",
    "        # Compute prediction and loss\n",
    "        pred = model(t)\n",
    "        loss = loss_function(pred, x)\n",
    "\n",
    "        # Backpropagation\n",
    "        optimizer.zero_grad()\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "\n",
    "        if batch % 100 == 0:\n",
    "            loss, current = loss.item(), batch * len(t)\n",
    "            print(f\"loss: {loss:>7f}  [{current:>5d}/{size:>5d}]\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1\n",
      "-------------------------------\n",
      "loss: 0.053159  [    0/10000]\n",
      "loss: 0.015115  [ 1600/10000]\n",
      "loss: 0.002898  [ 3200/10000]\n",
      "loss: 0.000903  [ 4800/10000]\n",
      "loss: 0.000249  [ 6400/10000]\n",
      "loss: 0.000132  [ 8000/10000]\n",
      "loss: 0.000047  [ 9600/10000]\n",
      "Epoch 2\n",
      "-------------------------------\n",
      "loss: 0.000030  [    0/10000]\n",
      "loss: 0.000060  [ 1600/10000]\n",
      "loss: 0.000014  [ 3200/10000]\n",
      "loss: 0.000021  [ 4800/10000]\n",
      "loss: 0.000208  [ 6400/10000]\n",
      "loss: 0.000030  [ 8000/10000]\n",
      "loss: 0.000051  [ 9600/10000]\n",
      "Epoch 3\n",
      "-------------------------------\n",
      "loss: 0.000082  [    0/10000]\n",
      "loss: 0.000026  [ 1600/10000]\n",
      "loss: 0.000103  [ 3200/10000]\n",
      "loss: 0.000022  [ 4800/10000]\n",
      "loss: 0.000107  [ 6400/10000]\n",
      "loss: 0.000071  [ 8000/10000]\n",
      "loss: 0.000066  [ 9600/10000]\n",
      "Epoch 4\n",
      "-------------------------------\n",
      "loss: 0.000021  [    0/10000]\n",
      "loss: 0.000055  [ 1600/10000]\n",
      "loss: 0.000057  [ 3200/10000]\n",
      "loss: 0.000005  [ 4800/10000]\n",
      "loss: 0.000059  [ 6400/10000]\n",
      "loss: 0.000029  [ 8000/10000]\n",
      "loss: 0.000012  [ 9600/10000]\n",
      "Epoch 5\n",
      "-------------------------------\n",
      "loss: 0.000013  [    0/10000]\n",
      "loss: 0.000039  [ 1600/10000]\n",
      "loss: 0.000030  [ 3200/10000]\n",
      "loss: 0.000013  [ 4800/10000]\n",
      "loss: 0.000290  [ 6400/10000]\n",
      "loss: 0.000007  [ 8000/10000]\n",
      "loss: 0.000010  [ 9600/10000]\n",
      "Done!\n"
     ]
    }
   ],
   "source": [
    "for t in range(epochs):\n",
    "    print(f\"Epoch {t+1}\\n-------------------------------\")\n",
    "    train_loop(dataloader, model, loss_function, optimizer)\n",
    "print(\"Done!\")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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M3HbbbfhwIEDSExMdOb0PYYtf5/HjBmDkpISa0AIAEePHkV8fDyDlU7Ycq+bmpquCkosgaLEo/PswmWfgw5N6fUAmzdvljQajbRx40apuLhYmjlzphQZGSnpdDpJkiTpwQcflJ5++mnr+K+++kry8/OTVq5cKR06dEhavHgxy5plUHqfly1bJgUEBEjvvvuuVF5ebn0YDAZXvQWPoPQ+/xSrhORRep/PnDkjhYWFSX/84x+lI0eOSB999JEUGxsrPfvss656Cx5D6b1evHixFBYWJr399tvSiRMnpI8//ljq16+fNHnyZFe9BbdnMBik7777Tvruu+8kANKqVauk7777Tjp9+rQkSZL09NNPSw8++KB1vKWsec6cOdKhQ4ekNWvWsKzZWV566SXp2muvlQICAqRRo0ZJX3/9tfVrt956qzR9+vQ247du3SoNGDBACggIkAYPHixt377dyTP2TEruc+/evSUAVz0WL17s/Il7GKV/n6/EgEU+pfd59+7dUmpqqqTRaKS+fftKzz33nGQymZw8a8+k5F63tLRIS5Yskfr16ycFBgZKiYmJ0iOPPCKdP3/e+RP3ELt27Wr3563lvk6fPl269dZbr3rN8OHDpYCAAKlv377S66+/7vB5CpLENTIiIiJybz6dw0JERESegQELERERuT0GLEREROT2GLAQERGR22PAQkRERG6PAQsRERG5PQYsRERE5PYYsBAREZHbY8BCREREbo8BCxEREbk9BixERETk9hiwEBERkdv7/7OHoIAWhDSSAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "## Test 0\n",
    "u0 = torch.from_numpy(np.sin(beta0 * X[0])).float().unsqueeze(0).unsqueeze(0)\n",
    "\n",
    "u = np.zeros((nt + 1, nx + 1))\n",
    "u[0] = u0\n",
    "u[:, 0] = ux0\n",
    "u[:, -1] = uxn\n",
    "\n",
    "b = np.zeros(nx - 1)\n",
    "for j in range(1, nt + 1):\n",
    "    b[0] = r * u[j - 1, 0] + r * u[j, 0]\n",
    "    b[-1] = r * u[j - 1, -1] + r * u[j, -1]\n",
    "    u[j, 1:nx] = Ainv @ ((B @ u[j - 1, 1:nx]) + b)\n",
    "\n",
    "plt.scatter(np.linspace(0, 1, nx + 1), u[-1], alpha=0.5)\n",
    "# plt.scatter(np.linspace(0, 1, nx + 1), model(torch.cat((beta0_vec, u0), 1)).detach())\n",
    "plt.scatter(np.linspace(0, 1, nx + 1), model(torch.cat((beta0_vec, vec), 1)).detach())\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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4IA0bdo0KSoqStLpdJIkSdKkSZOkl156yT4+JydH8vPzk+bPny/l5+dLs2fP5mXiMrj6Ps+dO1cKCAiQ/vWvf0klJSX2m8lk6qyX4BVcfZ/Px6uo5HH1fT516pQUHh4uTZ8+XTp06JD0/fffS3FxcdJf//rXznoJXsHV93n27NlSeHi49NVXX0nHjh2T/vvf/0p9+vSRJkyY0FkvwSuYTCZpz5490p49eyQA0oIFC6Q9e/ZIJ0+elCRJkl566SVp0qRJ9vG2y8Sff/55KT8/X1q8eDEvE/dUixYtknr06CEFBARI119/vbR9+3b710aMGCE98sgjLcZ//fXX0uWXXy4FBARIV1xxhbRu3To3z9g7ufI+9+zZUwJwwW327Nnun7iXcfXn+VwMOPK5+j5v27ZNSklJkQIDA6XevXtLf/vb3ySLxeLmWXsfV97npqYm6bXXXpP69OkjBQUFSUlJSdLjjz8uVVZWun/iXmTz5s2t/r61vbePPPKINGLEiAsec/XVV0sBAQFS7969pczMTMXnKUgSj8MRERGRurCDQ0RERKrDgENERESqw4BDREREqsOAQ0RERKrDgENERESqw4BDREREqsOAQ0RERKrDgENERESqw4BDREREqsOAQ0RERKrDgENERESqw4BDREREqvP/AatDF20RKYoeAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "## Test 1\n",
    "u0 = torch.from_numpy(np.sin(beta1 * X[0])).float().unsqueeze(0).unsqueeze(0)\n",
    "\n",
    "u = np.zeros((nt + 1, nx + 1))\n",
    "u[0] = u0\n",
    "u[:, 0] = ux0\n",
    "u[:, -1] = uxn\n",
    "\n",
    "b = np.zeros(nx - 1)\n",
    "for j in range(1, nt + 1):\n",
    "    b[0] = r * u[j - 1, 0] + r * u[j, 0]\n",
    "    b[-1] = r * u[j - 1, -1] + r * u[j, -1]\n",
    "    u[j, 1:nx] = Ainv @ ((B @ u[j - 1, 1:nx]) + b)\n",
    "\n",
    "plt.scatter(np.linspace(0, 1, nx + 1), u[-1], alpha=0.5)\n",
    "# plt.scatter(np.linspace(0, 1, nx + 1), model(torch.cat((beta1_vec, u0), 1)).detach())\n",
    "plt.scatter(np.linspace(0, 1, nx + 1), model(torch.cat((beta1_vec, vec), 1)).detach())\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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aJRffvllubS0VJ47d66cmJgo2+12WZZl+aabbpIXLlzYtn7Lli2ywWCQly1bJpeVlcmLFy/mVmkBSt/nxx57TI6KipLffvttuaKiou1RW1sbqN+CJih9n8/F3UZilL7Phw8flk0mkzxv3jx579698po1a+S0tDT5T3/6U6B+C5qg9H1evHixbDKZ5Ndee00+ePCg/N///lfu37+/PGXKlED9FjShtrZW/vrrr+Wvv/5aBiA/+eST8tdffy1///33sizL8sKFC+Wbbrqpbb1rq/Tvf/97uaysTF6xYgW3SgfC8uXL5d69e8tRUVHy8OHD5c8//7zta1deeaU8Y8aMDuvffPNNeeDAgXJUVJR8/vnny++//76fK9YmJe9znz59ZAA/eSxevNj/hWuM0j/P7TG8iFP6Pn/22WdyXl6ebDQa5X79+smPPPKI3NLS4ueqtUfJ+9zc3Cw/9NBDcv/+/eXo6Gg5MzNTvv322+VTp075v3AN+eijjzr999b13s6YMUO+8sorf/Kaiy66SI6KipL79esnv/TSS6rXqZNlXj8jIiIi7WDPCxEREWkKwwsRERFpCsMLERERaQrDCxEREWkKwwsRERFpCsMLERERaQrDCxEREWkKwwsRERFpCsMLERERaQrDCxEREWkKwwsRERFpCsMLERERacr/B0U2CHWpPUmbAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "## Test 2\n",
    "u0 = torch.from_numpy(np.sin(beta2 * X[0])).float().unsqueeze(0).unsqueeze(0)\n",
    "\n",
    "u = np.zeros((nt + 1, nx + 1))\n",
    "u[0] = u0\n",
    "u[:, 0] = ux0\n",
    "u[:, -1] = uxn\n",
    "\n",
    "b = np.zeros(nx - 1)\n",
    "for j in range(1, nt + 1):\n",
    "    b[0] = r * u[j - 1, 0] + r * u[j, 0]\n",
    "    b[-1] = r * u[j - 1, -1] + r * u[j, -1]\n",
    "    u[j, 1:nx] = Ainv @ ((B @ u[j - 1, 1:nx]) + b)\n",
    "\n",
    "plt.scatter(np.linspace(0, 1, nx + 1), u[-1], alpha=0.5)\n",
    "# plt.scatter(np.linspace(0, 1, nx + 1), model(torch.cat((beta2_vec, u0), 1)).detach())\n",
    "plt.scatter(np.linspace(0, 1, nx + 1), model(torch.cat((beta2_vec, vec), 1)).detach())\n",
    "plt.show()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### What does the Fourier Layer do?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<torch.utils.hooks.RemovableHandle at 0x2610596fe20>"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "activation = {}\n",
    "def get_activation(name):\n",
    "    def hook(model, input, output):\n",
    "        activation[name] = output.detach()\n",
    "    return hook\n",
    "\n",
    "model.k0.register_forward_hook(get_activation('k0'))\n",
    "model.w0.register_forward_hook(get_activation('w0'))\n",
    "model.k1.register_forward_hook(get_activation('k1'))\n",
    "model.w1.register_forward_hook(get_activation('w1'))\n",
    "model.k2.register_forward_hook(get_activation('k2'))\n",
    "model.w2.register_forward_hook(get_activation('w2'))\n",
    "model.k3.register_forward_hook(get_activation('k3'))\n",
    "model.w3.register_forward_hook(get_activation('w3'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj0AAAGdCAYAAAD5ZcJyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAABZNUlEQVR4nO3df1xUdb4/8NcMwiAmg4gy0Frgj1JCxR+BlOmuUJDm6s27K6areb3YWpZFv6RSYq1F08xKNlZv9uNrRtvetrK8U4ZrtYVSoquIedXF9QczmLIwCoE4c75/cGdkYH6cMzNnfr6ej8c8ksPnnDlH4viez3l/3m+FIAgCiIiIiIKc0tcnQEREROQNDHqIiIgoJDDoISIiopDAoIeIiIhCAoMeIiIiCgkMeoiIiCgkMOghIiKikMCgh4iIiEJCL1+fgC+YTCbU19ejb9++UCgUvj4dopAkCAIuXryIxMREKJWB8fmL9w4i33L3vhGSQU99fT0GDRrk69MgIgCnT5/Gz372M1+fhii8dxD5B1fvGyEZ9PTt2xdA519adHS0j8+GKDQZDAYMGjTI8vsYCHjvIPItd+8bIRn0mKelo6OjeeMi8rFAekzEeweRf3D1vhEYD9KJiIiI3MSgh4iIiEKCV4Ke0tJSJCUlITIyEhkZGaiqqrI7dvPmzbjtttvQr18/9OvXD9nZ2T3GC4KAlStXIiEhAb1790Z2djaOHTsm92UQERFRAJM96HnvvfdQUFCAoqIiVFdXY/To0cjJycG5c+dsjt+9ezfmzJmDv/71r6isrMSgQYNwxx134OzZs5YxL7zwAl555RWUlZVh79696NOnD3JyctDW1ib35RAREVGAUgiCIMj5BhkZGbj55puxceNGAJ11LgYNGoQHH3wQy5cvd7q/0WhEv379sHHjRsyfPx+CICAxMRGPPvooHnvsMQBAc3Mz4uPj8eabbyIvL8/pMQ0GA9RqNZqbm5mMSOQjgfh7GIjnTBRM3P0dlHWm5/Lly9i3bx+ys7OvvqFSiezsbFRWVoo6RmtrKzo6OhAbGwsAqKurg16vtzqmWq1GRkaG6GMSERFR6JF1yfr58+dhNBoRHx9vtT0+Ph4//PCDqGM8+eSTSExMtAQ5er3ecozuxzR/r7v29na0t7dbvjYYDKKvgYiIiIKDX6/eWr16NcrLy/GXv/wFkZGRLh+npKQEarXa8mJFVSIiotAja9ATFxeHsLAwNDQ0WG1vaGiARqNxuO+6deuwevVqfP755xg1apRlu3k/KccsLCxEc3Oz5XX69GlXLoeIABhNAipPXMBHB86i8sQFGE2ypgUSUZDz5j1F1sdbERERGDduHCoqKjBz5kwAnYnMFRUVWLp0qd39XnjhBTz//PP47LPPMH78eKvvJScnQ6PRoKKiAmlpaQA6H1ft3bsXS5YssXk8lUoFlUrlkWsiCmXaGh2Kt9dC13x1pWSCOhJF01OQm5rgwzMjokDk7XuK7I+3CgoKsHnzZrz11ls4cuQIlixZgpaWFixcuBAAMH/+fBQWFlrGr1mzBitWrMCWLVuQlJQEvV4PvV6PS5cuAegsPf3www/jueeew8cff4xDhw5h/vz5SExMtARWROR52hodlmyttro5AYC+uQ1LtlZDW6Pz0ZkRUSDyxT1F9t5bs2fPxo8//oiVK1dCr9cjLS0NWq3Wkoh86tQpq/bwr732Gi5fvox///d/tzpOUVERnn32WQDAE088gZaWFixevBhNTU2YOHEitFqtW3k/RGSf0SSgeHstbE06m7cVb6/F7SkahCkDp5cWEfmG0SRg+QeH7N5TFJDnniJ7nR5/xFobRNJUnriAOZv3OB33bv4EZA7pL+qYgfh7GIjnTOSPXv7if/HSF847KXS/p/h1nR4iCg7nLoqrdr6z1nbZCCIiM6NJwB+/+oeosWLvPWIx6CEipwb2Fffo+KMD9VzNRUQObdx1DK2XjaLGir33iMWgh4icSk+ORWyfcKfjLrRcRlVdoxfOiIgCkZRZnpiocKQnx3r0/Rn0EJFTYUoF/i3tWlFjPT0dTUTB4+HyatGzPAtvSfb4wggGPUQkSnaK44KiZp6ejiai4LDjYD22HxSX9xcVEYalU4Z6/BwY9BCRKOnJsUhQR8Le5y4FOouKeXo6mogCn9Ek4PH/Pih6/H2ThshS/oJBDxGJEqZUYMW0FJt1Ncy3pqLpKazTQ0Q9bNx1DC3t4h5ryTXLA3ihOCERBQdtjQ6rPq21+T0NW1EQkR1SkpcB+WZ5AAY9RCSCuVy8vcXoK6aNYMBDRDZJSV6+RtVLtlkegI+3iMgJRy0ogM5HW6s+PcL6PETUg5TkZQB4YdYoWR+RM+ghIoeq6hp7NATsSgCga25jfR4isiI1efmuUQmYOkreGWMGPUTkkNi6O6zPQ0RdSUle7h2uxMt5Y2Q+IwY9ROSE2Lo7rM9DRGZSk5d/O3moV1Z+MughIodYn4eIpPKn5OWuGPQQkUNhSgWKpqcAgM3ARwCQd/Mgr54TEfkvf0te7opBDxE5lZuagNfmjYVGbfsR1ktfHMPENbugrdF5+cyIyJ/4Y/JyVwx6iEiU3NQE/O3JKXgk+wab39c3t2HJ1moGPkQhzB+Tl7ti0ENEkpR/d8rmdnOVnuLttazZQxSC/DV5uSsGPUQkGmv2EJE9/pq83BWDHiISjTV7iMgWf05e7opBDxGJxpo9RNSdvycvd8Wgh4hEY80eIuru1Qr/Tl7uikEPEYnmqGaP+eui6Sk+mbYmIu/75EA9NlQcEz3eF8nLXTHoISJJ7NXs0agj8dq8schN9c20NRF5V8mOWiwt3y96vK+Sl7ti0ENEkplr9rybPwEv56Xh3fwJ+NuTUzwa8JSWliIpKQmRkZHIyMhAVVWV3bGHDx/GrFmzkJSUBIVCgQ0bNvQY8+yzz0KhUFi9hg8f7rHzJQolOw7W449f1Unax1fJy1318um7E1HAClMqkDmkvyzHfu+991BQUICysjJkZGRgw4YNyMnJwdGjRzFw4MAe41tbWzF48GD86le/wiOPPGL3uDfddBO++OILy9e9evEWSCSV1MRlwLfJy11xpoeI/M769euRn5+PhQsXIiUlBWVlZYiKisKWLVtsjr/55puxdu1a5OXlQaVS2T1ur169oNFoLK+4uDi5LoEoaEmpugwA6t69fJq83BWDHiLyK5cvX8a+ffuQnZ1t2aZUKpGdnY3Kykq3jn3s2DEkJiZi8ODBmDt3Lk6dsl1d2qy9vR0Gg8HqRRTKpFZdBoA1fvBYy4xBDxGJYjQJqDxxAR8dOIvKExdkazVx/vx5GI1GxMfHW22Pj4+HXi+++Fl3GRkZePPNN6HVavHaa6+hrq4Ot912Gy5evGh3n5KSEqjVastr0CB2k6fQJqXqslIB/OEe/1rcwAfaROSUtkaH4u21Vi0oEtSRKJqe4lc3NEfuvPNOy59HjRqFjIwMXH/99fjTn/6ERYsW2dynsLAQBQUFlq8NBgMDHwpZUqsuvzJ7jF/k8XTFmR4ickhbo8OSrdU9em7J1VU9Li4OYWFhaGhosNre0NAAjUbjsfeJiYnBDTfcgOPHj9sdo1KpEB0dbfUiCkWuVF2+Ky1RxjNyDYMeIrLLaBJQvL0Wth5kydVVPSIiAuPGjUNFRYVlm8lkQkVFBTIzMz32PpcuXcKJEyeQkOBfn0SJ/JGU5GVfV112hEEPEdnlq67qBQUF2Lx5M9566y0cOXIES5YsQUtLCxYuXAgAmD9/PgoLCy3jL1++jAMHDuDAgQO4fPkyzp49iwMHDljN4jz22GP48ssvcfLkSXz77bf4t3/7N4SFhWHOnDkePXeiYCM1ednXVZcd8UrQwyJjRIHJV13VZ8+ejXXr1mHlypVIS0vDgQMHoNVqLcnNp06dgk539bFafX09xowZgzFjxkCn02HdunUYM2YM/vM//9My5syZM5gzZw5uvPFG/PrXv0b//v2xZ88eDBgwwKPnThRspCQv+0PVZUdkT2RmkTGiwOXLrupLly7F0qVLbX5v9+7dVl8nJSVBEBw/YisvL/fUqRGFDKnJy/5QddkR2Wd6WGSMKHCxqzpR6HIlednfVmt1J2vQ4y9FxlhgjMg17KpOFLqCJXm5K1mDHn8pMsYCY0SuY1d1otATTMnLXQVkIozUImMsMEbkntzUBNyeokFVXSPOXWzDwL6dj7QC4SZHRNIFU/JyV7IGPf5SZEylUjnMDyIi5+Tsqk5E/iPYkpe7kvXxFouMERERBY5gTF7uSvbHWwUFBViwYAHGjx+P9PR0bNiwoUeRsWuvvRYlJSUAOpOfa2trLX82Fxm75pprMHRo5/TZY489hunTp+P6669HfX09ioqKWGSMiIjITcGYvNyV7EHP7Nmz8eOPP2LlypXQ6/VIS0vrUWRMqbw64WQuMma2bt06rFu3DpMnT7bU5jAXGbtw4QIGDBiAiRMnssgYERGRG4I1ebkrheCsolcQMhgMUKvVaG5uZgNBIjcYTYLLyc2B+HsYiOdMJNbLX/wvXvrimKix16h64e9Fd3g96HH3dzAgV28Rke9pa3Qo3l5r1ZsrQR2JoukpXMZOFGCkzvIEUvJyV2w4SkSSaWt0WLK1ukczUn1zG5ZsrYa2RmdnTyLyR1KWqAda8nJXDHqISBKjSUDx9lrYei5u3la8vRZGU8g9OScKSFKWqAdi8nJXDHqISJKqusYeMzxdCQB0zW2oqmv03kkRkUukLlEPxOTlrhj0EJEk5y7aD3hcGUdEviNliXpURFjAVF62h0EPEUkysG+k80ESxhGRb0hNXr5v0pCAnuUBGPQQkUTpybFIUEf26LpupkDnKq705FhvnhYRSRSs/bUcYdBDRJKEKRUomp4CAD0CH/PXRdNTAv4TIVEwC+b+Wo4w6CEiyXJTE/DavLHQqK0fYWnUkXht3ljW6SHyY8HeX8sRFickIpfkpibg9hSNyxWZicg3gr2/liMMeojIZWFKBTKH9Pf1aRCRSKHQX8sRPt4iIiIKEaGYvNwVZ3qIyCl3GosSkX8I1eTlrhj0EJFDbCxKFPhCOXm5Kz7eIiK72FiUKDiEcvJyVwx6iMgmNhYlCg6hnrzcFYMeIrKJjUWJgkOoJy93xaCHiGxiY1GiwMfkZWsMeojIJjYWJQpsTF7uiUEPEdnExqJEgY3Jyz0x6CEim9hYlChwMXnZNgY9RGQXG4sSBSYmL9vG4oRE5BAbixIFFiYv28egh4icYmNRosDA5GXH+HiLiIgoSDB52TEGPUREREGAycvOMeghIiIKAkxedo5BDxERUYBj8rI4DHqIiIgCGJOXxWPQQ0REFMCYvCwegx4iIqIAxeRlaRj0EBERBSgmL0vjlaCntLQUSUlJiIyMREZGBqqqquyOPXz4MGbNmoWkpCQoFAps2LDB7WMSEREFGyYvSyd70PPee++hoKAARUVFqK6uxujRo5GTk4Nz587ZHN/a2orBgwdj9erV0Gg0HjkmERFRMGHysmtkD3rWr1+P/Px8LFy4ECkpKSgrK0NUVBS2bNlic/zNN9+MtWvXIi8vDyqVyiPHJCIiCiZMXnaNrEHP5cuXsW/fPmRnZ199Q6US2dnZqKys9JtjEhERBQomL7tO1oaj58+fh9FoRHx8vNX2+Ph4/PDDD147Znt7O9rb2y1fGwwGl96biIjI15i87LqQWL1VUlICtVpteQ0aNMjXp0RERCQZk5fdI2vQExcXh7CwMDQ0NFhtb2hosJukLMcxCwsL0dzcbHmdPn3apfcmIiLyFSYvu0/WoCciIgLjxo1DRUWFZZvJZEJFRQUyMzO9dkyVSoXo6GirFxERUSBh8rL7ZM3pAYCCggIsWLAA48ePR3p6OjZs2ICWlhYsXLgQADB//nxce+21KCkpAdCZqFxbW2v589mzZ3HgwAFcc801GDp0qKhjEpFtRpOAqrpGnLvYhoF9I5GeHOv21LccxyQia0xe9gzZg57Zs2fjxx9/xMqVK6HX65GWlgatVmtJRD516hSUyqsTTvX19Rgz5mp0um7dOqxbtw6TJ0/G7t27RR2TiHrS1uhQvL0WuuY2y7YEdSSKpqcgN9W1KXA5jklEPW3cdYzJyx6gEARB8PVJeJvBYIBarUZzczMfdVFI0NbosGRrNbr/sps/B742b6zkIMXdYwbi72EgnjMFPqNJwMhnPxMd9PzhnrFBm8vj7u9gSKzeIgplRpOA5R8c6hGcALBsK95eC6NJ/Ocfo0lA8fZajx6TiGyTskSdycuOMeghCnIbdx1DU2uH3e8LAHTNbaiqa7T5faNJQOWJC/jowFlUnrhgyeHp+khL6jGJSJxPDohfos7kZedkz+khIt8xmgS88c1JUWPPXewZxNjL2ZmaKq7khK1jEpE4Ow7W48Hy/aLHM3nZOQY9REGsqq4RTT/Zn+Xp6uT5Vquv7eXs6Jvb8LrIQGpg30hR44jImrZGh/u3iQ94oiLCmLwsAh9vEQUxKTMt5d+dsuTgiMnZUSquJi13p0DnjFB6cqyU0yUiXM3Dk+K+SUM4yyMCgx6iICZlpqVrDo6znB0AMAmdAVD326z566LpKbwJE7ng4fJqh3l43XGJungMeoiC2L9a2p0P6sI8MyR2hug/bk2CRm0dWGnUkS4tgSci6b21APbXkoI5PURBymgSsOrTI5L2Mc8MiZ0huj1Fg6enpbAiM5EHSO2tBQD3TUrmEnUJGPQQBSkxj6jMFOicoTHn4KQnxyJBHQl9c5vNvJ6u48OUCmQO6e+x8yYKVVJ6awHAxrwxuCstUcYzCj58vEUUpKQkMQuwzsEJUypQND0FAHN2iLxBam+tZVnDGPC4gEEPUZCSksQcExXeY1tuagJemzeWOTtEXiCl6vI1ql54KGuYzGcUnPh4iyhIOXtE1VVzaweWbK3uEczkpibg9hQNc3aIZCQ1eZmJy67jTA9RkApTKvDL0QlOAx7Acb8sc87OjLRrkTmkP2+2RB4kNXmZvbXcw6CHKEhpa3TY9FWd6PH+1i+rtLQUSUlJiIyMREZGBqqqquyOPXz4MGbNmoWkpCQoFAps2LDB7WMSeYOU5GX21nIfgx6iIOSoorIz/tAv67333kNBQQGKiopQXV2N0aNHIycnB+fOnbM5vrW1FYMHD8bq1auh0djuCyb1mERyk5q8zN5a7mPQQxSEpCxX784f+mWtX78e+fn5WLhwIVJSUlBWVoaoqChs2bLF5vibb74Za9euRV5eHlQqlUeOSSQ3qcnLrLrsPgY9REHIldkaf+mXdfnyZezbtw/Z2dmWbUqlEtnZ2aisrPTqMdvb22EwGKxeRJ7A5GXfYNBDFISkztb4U+2d8+fPw2g0Ij4+3mp7fHw89Hpp5fndPWZJSQnUarXlNWjQIJfen6grJi/7DoMeoiBkXq4uNnxh7R3bCgsL0dzcbHmdPn3a16dEQYDJy77DOj1EQchcUXnJ1uoe31Ogc6XWI9nDkBTXx+9q78TFxSEsLAwNDQ1W2xsaGuwmKct1TJVKZTdHiMgVTF72Lc70EAUxtY1KyzFR4SibNxbLsm/wy9o7ERERGDduHCoqKizbTCYTKioqkJmZ6TfHJHIFk5d9izM9REFIW6PDkq3VNpes/6u1A0DnJ05/rbRcUFCABQsWYPz48UhPT8eGDRvQ0tKChQsXAgDmz5+Pa6+9FiUlJQA6E5Vra2stfz579iwOHDiAa665BkOHDhV1TCK5MXnZ9xj0EAUZZzV6FACWf3AIz35cC73h6iqvBHUkiqan+EVez+zZs/Hjjz9i5cqV0Ov1SEtLg1artSQinzp1Ckrl1Ynq+vp6jBlzNe9h3bp1WLduHSZPnozdu3eLOiaRnJi87B8UgiC4Ur8soBkMBqjVajQ3NyM6OtrXp0PkUZUnLmDO5j2S9zN/nvRWQnMg/h4G4jmTf3j5i//FS18cEzW2d7gSNcW5nOWxwd3fQeb0EAUZVysqO+q/RUSuY/Ky/2DQQxRk3Kmo7G/9t4iCAZOX/QeDHqIgI7VGjy3+0H+LKBgwedm/MOghCjJhSgV+OTrBpWajZv7Qf4so0DF52f8w6CEKMtoaHTZ9VWf3+30iwuzOAvlL/y2iYMDKy/6HQQ9REHG2XB0Awnt1/tp3D3z8qf8WUaBj8rJ/YtBDFESq6hqha3acj9PU2oGHs2+ARm39CIv9t4g8h8nL/onFCYmCiNgE5KS4KPztySlOKzL7c9VmIn/F5GX/xaCHKIiITUAe2DcSYUoFMof0tztGW6ND8fZaq5kjf6raTOSPmLzs37zyeKu0tBRJSUmIjIxERkYGqqqqHI5///33MXz4cERGRmLkyJHYsWOH1ffvvfdeKBQKq1dubq6cl0AUEJwtVxebqGzu3dX9UZm+uQ1LtlZDW6PzzAkTBRkmL/s32YOe9957DwUFBSgqKkJ1dTVGjx6NnJwcnDt3zub4b7/9FnPmzMGiRYuwf/9+zJw5EzNnzkRNTY3VuNzcXOh0Osvr3XfflftSiPyemOXqzhKVHSVDs2ozkX1MXvZ/sgc969evR35+PhYuXIiUlBSUlZUhKioKW7ZssTn+5ZdfRm5uLh5//HGMGDECq1atwtixY7Fx40arcSqVChqNxvLq16+f3JdC5PecLVdfPCnZ6aMpZ8nQrNpMZBuTl/2frEHP5cuXsW/fPmRnZ199Q6US2dnZqKystLlPZWWl1XgAyMnJ6TF+9+7dGDhwIG688UYsWbIEFy5csHse7e3tMBgMVi+iYCNmufrHf9c5naERmwzNqs1EVzF5OTDIGvScP38eRqMR8fHxVtvj4+Oh19v+n0Ov1zsdn5ubi7fffhsVFRVYs2YNvvzyS9x5550wGm1H2CUlJVCr1ZbXoEGD3LwyIv8jZrl69xkao0lA5YkL+OjAWVSeuACjSZCUDE1ETF4OJAG5eisvL8/y55EjR2LUqFEYMmQIdu/ejaysrB7jCwsLUVBQYPnaYDAw8KGgI3WGxt7qrBXTRiBBHQl9c5vNWSMFOmv6sGozUScmLwcOWWd64uLiEBYWhoaGBqvtDQ0N0Gg0NvfRaDSSxgPA4MGDERcXh+PHj9v8vkqlQnR0tNWLKNhImaFxtDrrgW378cvRnZ9CWbWZyDEmLwcWWYOeiIgIjBs3DhUVFZZtJpMJFRUVyMzMtLlPZmam1XgA2Llzp93xAHDmzBlcuHABCQmcLqTQYDQJ+ObYeaz77Aes++wovjl+HhcutjvdL0EdiXHX93O6Ouvjv+tQes9YVm0mcmLjrmNMXg4gsj/eKigowIIFCzB+/Hikp6djw4YNaGlpwcKFCwEA8+fPx7XXXouSkhIAwLJlyzB58mS8+OKLmDZtGsrLy/H9999j06ZNAIBLly6huLgYs2bNgkajwYkTJ/DEE09g6NChyMnJkftyiNxmNAnYc+ICKv9xHkBngcAJg/uL/vS346AOT/z3QVxqv2LZtvGvx+3W5ulqxbQU7Pvnv0StzurXJ0JU1WaiUCV1lofJy74ne9Aze/Zs/Pjjj1i5ciX0ej3S0tKg1WotycqnTp2CUnl1wumWW27Btm3b8Mwzz+Cpp57CsGHD8OGHHyI1NRUAEBYWhoMHD+Ktt95CU1MTEhMTcccdd2DVqlVQqVRyXw6Ry4wmAa9WHEPZlyfQdsVk2b7xr8fRRxWGtbNGYeqoRIfHeP7TWmz+2vaSdDFVc/r1iZCU++OsajNRKJOyRJ3Jy/5BIQhCyFUYMxgMUKvVaG5uZn4PecWOgzoU/OmAVbBjS/5tSXh62k02v/f8p4ex+euTbp3Hy3lpGNg3EnM273E69t38CbIGPIH4exiI50zy2HGwHvdv2y9qbO9wJWqKcznL4wHu/g4G5OotokDiaHamu81fn4RJAFbcZR347DhY73bAA8DyiIqrs4hcJ3WJOpOX/YdXem8RhRpzovGMjV+LDnjMXv/bSTz/aa3VsaTcYO3p3yfCkpNTND0FgOdWZ9mq90MUrKQsUY+KCGPysh/hTA+RB9nL25Fq89d1GDOoH6aOSpB0g3VkRlqiJZDJTU3Aa/PG9qjTo3Ghizq7sVMokZq8fN+kIZzl8SMMeog8wBzslP71ODo8NMvxxH8fRHZKvKQbrCO3p1jXuspNTcDtKRq3VmeZ6/10v2JzN3Yub6dgw/5agY1BD5GbtDU6FPzp76JvhGJdar+C+Vv2euS45kdb3bmzOstZN3YFOrux356i4SddCgrsrxX4mNND5AZtjQ6/3Sr+k59Ue/7hmU7mq2akevzmy27sFErYXys4MOghcpHRJOBJDyQYy+2+Scmy3HzZjZ1CCftrBQc+3iJy0cZdx9D80xXnA30ktk84npuR6rTgoavYjZ1CBftrBQ8GPUQukHoTtEUTHQG94bLb57IsaxgmDO4PffNPaGy5jNhrVNBEy98ygvV+KFQweTl4MOghcoGUJoO25N+WhOV3pmBU8WduLUe/RtULD2UN88mnSnO9nyVbq6GAdRsMdmOnYMHk5eDCnB4iidyZ5blGFYY/3DMGT0+7CWFKBfLGD3LrXH49/mdu32DdKSxorvfDbuwUjJi8HHw400MkkdRZnjAlcPuIePwmM6lHN/XsFA1e/+aky+fSvfaOVJ4oLOiJej9E/ojJy8GHQQ+RBFJneR76xVAsu/0GuwFAenIsYvuEo7GlQ/K5xESFu5Uv48nCguzGTsGGycvBiY+3iCSQMsuzLGsYCnJudHgjDFMq8NyMVJfOZeEtyS7fZJ0VFgQ6CwuyhxaFKiYvByfO9FDIM5oE7DlxAd+c+BH1TW24tl9v3DIkrsejKKNJwBsiH0VFRYThoaxhosZOHZWI6TU6ScmS7t5kxRYWfPObOsT1VfGRFYUUJi8HLwY9FNJ2HNThif8+iEvt1vV2Sv96An1UYVg7a5Slzk1VXSOafhL3GEpqk8ENeWPx1bHPRdf9cfcmK7Zg4KpPj1j+zCaiFAqYvBzc+HiLQtbzn9bi/m3VPQIes5Z2I+7fth/Pf3oYAPBFrbhPflERYZJnYcKUCqyZNUrUWE9UWHalYKA510dbo3PrvYn8GZOXgxuDHgpJqz45jM1f14kau/nrkyjeXoPy70+LGi91lscsNzUBZfPGIiYq3Ob3zcvdC6emSD52d+bCglLOkrk+FOyYvBz8+HiLQs7znx7G6387KWmfN775p6hx7ubamJd/i8kxcoejwoKOdG0iytVaFGyYvBz8GPRQSNlxsB6bvz4p2/E9USwwTKnArcPicOuwOA+dlW3mwoLd6/SIwSaiFGyYvBwaGPRQyJCaoOgKd4sFelv3woLnL7ZbJS/bwyaiFEyYvBw6GPRQyJCSoOgKd4sF+krXwoJGk4D/+lsdm4hSSGHycuhgIjOFBE90RXfGnWKB/sKc6wOgR5Izm4hSMGLycmhh0EMhQUqCoiuCKamRTUQplDB5ObTw8RYFPakJiq4ItqRGNhGlUPDJASYvhxoGPRTUpCYoJsX2xsnGnyS9R/5t7hcL9EdsIkrBbMfBejxYvl/0eCYvBwc+3qKg9tC71ZISFCse+wXyb0sWffz825Lw9DT3iwX6mtEkoPLEBXx04CwqT1xg8UEKatoaHe7ftl90fSomLwcPzvRQ0Hr+08P49JD4qWtzguLT01IwZlA/mz25zGL7hOO5GamWvlyBTFuj61Grh322KFgZTQKWf3BI0j5MXg4eDHooKEktQtg9QXHqqATkpHZWRq78x3mYBKBfVATi+qqgiQ6e/BZtjQ5Ltlb3+MRr7rPFxGUKNg+XV6OpVVzjYIDJy8GGQQ8FHVeKENpKUPRWZWRfMZoEFG+vtTnFL6BziXrx9lrcnqIJigCPyJVFDUxeDi7M6aGg83C5+DweIHQTFKvqGh22n+jaZ4so0LnyYei+ScG5SCGUcaaHgorUT3J9IsJCNkFRbP8s9tmiYCC1IvvGvDG4Ky3wc/bImldmekpLS5GUlITIyEhkZGSgqqrK4fj3338fw4cPR2RkJEaOHIkdO3ZYfV8QBKxcuRIJCQno3bs3srOzcezYMTkvgQKA0STgmY9qJO2z9t9Hh+zUtdj+WeyzRYFOatXlZVnDGPAEKdmDnvfeew8FBQUoKipCdXU1Ro8ejZycHJw7d87m+G+//RZz5szBokWLsH//fsycORMzZ85ETc3Vf8xeeOEFvPLKKygrK8PevXvRp08f5OTkoK2Nn0hDWVVdIxpbxCcoBmt9HbHSk2ORoI7s0W6iq5je4TAJApewU0CTWnX5oaxhMp8R+YpCEARZ72YZGRm4+eabsXHjRgCAyWTCoEGD8OCDD2L58uU9xs+ePRstLS345JNPLNsmTJiAtLQ0lJWVQRAEJCYm4tFHH8Vjjz0GAGhubkZ8fDzefPNN5OXlOT0ng8EAtVqN5uZmREdHe+hKyddWbT+M1785KWrstJEalM4dJ+8JBQDz6i0ADmuWyLGEPRB/DwPxnEPdjoP1uH+b+CKEf7hnbEh/GPJ37v4OyjrTc/nyZezbtw/Z2dlX31CpRHZ2NiorK23uU1lZaTUeAHJycizj6+rqoNfrrcao1WpkZGTYPSYFP6NJQPn3p0WN7RMRhlfmjJX5jAKDvT5b3ZmXsGtrdF46MyL3SU1eDtVFDaFE1qDn/PnzMBqNiI+Pt9oeHx8Pvd52sqler3c43vxfKcdsb2+HwWCwelFwkZKkGMp5PLbkpibgb09OwTuLMhDTO9zmGPMsUPH2Wj7qooAh5b7AqsuhISSWrJeUlECtVltegwYN8vUpkQcZTQLeEPlYa8rwAfwkZ0OYUgGlUoGmn+znRHEJOwUSqcnLrLocGmQNeuLi4hAWFoaGhgar7Q0NDdBoNDb30Wg0Dseb/yvlmIWFhWhubra8Tp8W9xiEAkNVXaPDf6y7yr9tiMxnE7j0Bi5hp+CxcdcxScnLrLocGmQNeiIiIjBu3DhUVFRYtplMJlRUVCAzM9PmPpmZmVbjAWDnzp2W8cnJydBoNFZjDAYD9u7da/eYKpUK0dHRVi/yb1IaYH5RK64uT0xUONKTYz11ikFFW6PDqk8OixrLJezk76TO8rDqcuiQvThhQUEBFixYgPHjxyM9PR0bNmxAS0sLFi5cCACYP38+rr32WpSUlAAAli1bhsmTJ+PFF1/EtGnTUF5eju+//x6bNm0CACgUCjz88MN47rnnMGzYMCQnJ2PFihVITEzEzJkz5b4c8oIdB3V45qMaNLZctmyz1+DTaBLwlwNnRR134S3JvLHZYK//VncKABp1JANH8ntSlqgzeTm0yB70zJ49Gz/++CNWrlwJvV6PtLQ0aLVaSyLyqVOnoFRenXC65ZZbsG3bNjzzzDN46qmnMGzYMHz44YdITU21jHniiSfQ0tKCxYsXo6mpCRMnToRWq0VkJD+BBrrnP63F5q/remxvbOnA/dv2I//0v/D0tJss28XW5uH0tW2O+m91ZQ4Vi6anMHAkvyalKjuTl0OP7HV6/BFrbfin5z89LKozev5tyXh6WgoA4KMDZ7Gs/IDTff7j1iSsnH6T03GhpvLEBczZvMfpuP59IvD8v6WyTk8AnnMoMZoEjCr+TPSKrUeyb8CybBYiDCR+XaeHSKwdB+tFBTwAsPnrOuw42Fkv5uT5FlH73J5iO8k91IlNSn5m2giPBjxEcpCyRD0qIoyzvyGIQQ/5nCvdj1d8VIPLV0x4t+qU07EJzEOxS2xS8qnGn2Q+EyL3SE1evm/SED6qDUEMesjnpHY/BoALLZfx/ypPQm9odzo27+breHOzQ0z/LQDY8MX/er0as6cbFd97771QKBRWr9zcXDkvgbxIan8tzvKEJgY95FNSCgt299/7z4galxQX5dLxQ0GYUoGi6SlOE5kB71ZjlqNRMQDk5uZCp9NZXu+++643LodkJiV5GeAS9VDGoId8Skphwe5q6y+KGse6Mo7lpiZg+ijHOU/ersa8fv165OfnY+HChUhJSUFZWRmioqKwZcsWm+Nffvll5Obm4vHHH8eIESOwatUqjB071tLo2EylUkGj0Vhe/fr188blkIzYX4ukYNBDPiW2sKCr+veJYD6PE0aTgK+PXRA11hvVmOVoVGy2e/duDBw4EDfeeCOWLFmCCxccXzf79vk/9tciKRj0kM9IKSzoqhlpiZzGdkLKbJs3Zs3kaFQMdD7aevvtt1FRUYE1a9bgyy+/xJ133gmj0f4/mOzb59/YX4ukkr04IZE9YgsLuoNL1Z0TO3sT6G088vLyLH8eOXIkRo0ahSFDhmD37t3IysqyuU9hYSEKCgosXxsMBgY+foTJyyQVgx7yGbkflfDRljhiZ2+ctfEwmgRU1TXi3MU2DOzbWSbAlU/VcjQqtmXw4MGIi4vD8ePH7QY9KpUKKpVK4hWQNzB5mVzBx1vkM2ILC7qKj7bEEbNsPSYq3OGnZG2NDhPX7MKczXuwrPwA5mzeg4lrdrm0zF2ORsW2nDlzBhcuXEBCApNaAw2Tl8lVDHrIJ4wmQVRhQXfw0ZY45mXrAOwGPqvvHmk3gDQ3LNU1W8/c6ZvbsGRrtUuBT0FBATZv3oy33noLR44cwZIlS3o0Ki4sLLSMX7ZsGbRaLV588UX88MMPePbZZ/H9999j6dKlAIBLly7h8ccfx549e3Dy5ElUVFRgxowZGDp0KHJyciSfH/kWk5fJVQx6yCeq6hpFFRacMNi1x1OBnn/ibbmpCXht3lho1NaPuhLUkSibN9ZuCwpHDUvN21yp7zN79mysW7cOK1euRFpaGg4cONCjUbFOdzWYMjcq3rRpE0aPHo0///nPVo2Kw8LCcPDgQfzyl7/EDTfcgEWLFmHcuHH4+uuv+fgqwDB5mdzBnB7yCbFL1WePH4SDZ5pFJyuaOcs/oZ5yUxNwe4pGUl5OVV1jjxmerrrW98kc0l/S+SxdutQyU9Pd7t27e2z71a9+hV/96lc2x/fu3RufffaZpPcn/8TkZXIHgx7yOqNJwAf7xS1V16h7475Jg/HSF8dEH583OteFKRWSghOxyejeqO9DwY/Jy+QuPt4ir9u46xj+1ep8qbp59dXSKcPQRxUm+vi80XmP2JVfrIpN7mLyMnkCgx7yKm2NTvSsjXn1VZhSgbWzRonaJ/+2ZN7ovMjZyi8F2OWePIPJy+QJDHrIa8xJr2J1XX01dVQi7puU7HB8/m1JeHpaisvnR9I5Wvll/rpoegpn3sgtTF4mT2HQQ17jLOm1K1uzA4VTU/CHe8Yitk+E1fbYPuH4wz1j8PS0mzx2riSevZVfGnUkXnOw8otILCYvk6cwkZm8RkpzUXuzA1NHJSAnVdoKI5KfKyu/iMRg8jJ5EoMe8gqjSUD596dFjX0k+waHswNSVxiRd/DnQp7G5GXyND7eIq8Qm4QY66TdARGFDiYvk6cx6CHZGU0C3vjmpKixM8dcy6lpImLyMsmCQQ/JrqquEU0/Oa/LA7BfFhF1YvIyyYFBD8lObAIz+2UREcDkZZIPgx6SlZQEZvbLIiImL5OcGPSQrMQmInJ6mogAJi+TvLhknUQzmgRJdVikJCL+evzPOMtDFOKYvExyY9BDouw4qMMzH9WgseWyZVtsn3A8NyMVU0cl2txn465johMRmcBMRExeJrnx8RY5VbKjFvdvq7YKeACgsaUD92/bj+c/PdxjHymf2JjATERMXiZvYNBDDu04WI8/flXncMzmr0/i+U+tG4lKmeVhAjNRaGPyMnkLgx6yS8qNaPPXddhxUGfZT+wsT1REGKeoiUIck5fJWxj0kF1SbkQAsOKjGhhNgqRZnvsmDeEsD1EIY/IyeRODHrJJSusIswstl7HnxAXR+3GWh4iYvEzeJGvQ09jYiLlz5yI6OhoxMTFYtGgRLl265HCftrY2PPDAA+jfvz+uueYazJo1Cw0NDVZjFApFj1d5ebmclxJypLSO6Grr3pOi9+MsD1FoY/IyeZusQc/cuXNx+PBh7Ny5E5988gm++uorLF682OE+jzzyCLZv3473338fX375Jerr63H33Xf3GPfGG29Ap9NZXjNnzpTpKkKT2NYRPfc7J2ocZ3mIQhuTl8kXZKvTc+TIEWi1Wnz33XcYP348AODVV1/F1KlTsW7dOiQm9qzt0tzcjNdffx3btm3DlClTAHQGNyNGjMCePXswYcIEy9iYmBhoNKztIgejScBfDpx1ad8OkyBqHGd5iEIbk5fJF2Sb6amsrERMTIwl4AGA7OxsKJVK7N271+Y++/btQ0dHB7Kzsy3bhg8fjuuuuw6VlZVWYx944AHExcUhPT0dW7ZsgSDY/8e2vb0dBoPB6kX2VdU1orFF+qMtsfhcnii0MXmZfEW2mR69Xo+BAwdav1mvXoiNjYVeb/vRiV6vR0REBGJiYqy2x8fHW+3zu9/9DlOmTEFUVBQ+//xz3H///bh06RIeeughm8ctKSlBcXGxexckgtQ2Df7q3MU2WY/PlhNEoU3KCk9+SCJPkhz0LF++HGvWrHE45siRIy6fkBgrVqyw/HnMmDFoaWnB2rVr7QY9hYWFKCgosHxtMBgwaNAgj56TtkaH4u210DVfDRgS1JEomp6C3NTAeg49sG+krMdnywmi0CV1lofJy+RJkoOeRx99FPfee6/DMYMHD4ZGo8G5c9ZJrVeuXEFjY6PdXByNRoPLly+jqanJaranoaHBYf5ORkYGVq1ahfb2dqhUqh7fV6lUNrd7irZGhyVbq9H9AZuuuQ2/3VqNsnljAyrw+VdLu2zHZssJotAmZYk6k5fJ0yQHPQMGDMCAAQOcjsvMzERTUxP27duHcePGAQB27doFk8mEjIwMm/uMGzcO4eHhqKiowKxZswAAR48exalTp5CZmWn3vQ4cOIB+/frJGtjYYzQJKN5e2yPg6Wr5B4dwe4omID6tGE0CVn0q30wdW04QhS4pS9SZvExykC2nZ8SIEcjNzUV+fj7KysrQ0dGBpUuXIi8vz7Jy6+zZs8jKysLbb7+N9PR0qNVqLFq0CAUFBYiNjUV0dDQefPBBZGZmWlZubd++HQ0NDZgwYQIiIyOxc+dO/P73v8djjz0m16U4VFXXaPVIy5am1g5s3HUcy7KHeemsXCfmelzFZepEoUvqEnUmL5McZAt6AOCdd97B0qVLkZWVBaVSiVmzZuGVV16xfL+jowNHjx5Fa2urZdtLL71kGdve3o6cnBz84Q9/sHw/PDwcpaWleOSRRyAIAoYOHYr169cjPz9fzkuxS2zS7xvf1mHpFP//JZYziZnL1IlCl5Ql6vyARHKRNeiJjY3Ftm3b7H4/KSmpx1LzyMhIlJaWorS01OY+ubm5yM3N9eh5uuPk+RZR45paO1BV14jMIf1lPiP3iE1i7hvZCxfbrog+Lm9iRKFLavIyPyCRXNh7yw1Gk4B3q06JHi/3UnBPEJPEnKCORMnMkZKOy5sYUehify3yFwx63FBV1wi9QfxKJ7mXgrtLbBLzimkpuCstEfm3JYk6bkxUOG9iRCGK/bXInzDocYOUmZsEdaTfL9UWm8Tcr08EAODpaTch/7Zkp+NX3z2SNzGiEMT+WuRvGPS4QcrMTdH0FL//h19sENd13NPTUvCHe8biGlXP9LB+UeEBV6OIiDyH/bXI38iayBzs0pNjkaCOhL65zW6dHgWAV/PGBMQ//GKDuO7jpo5KQE6qBntOXEDlP84DUCBzSH9MGNzf7wM9IpIH+2uRP2LQ44YwpQJF01OwZGs1FIDNwEcA8Pz/HEGvXgq/D3zEJjHbekwXplTg1mFxuHVYnBynRkQBhsnL5I/4eMtNuakJeG3eWGjU9mdJ9M1tWLK1GtoanRfPTBopScz8NEZEjnxygMnL5J8Y9HhAbmoCvnz8F4j9vwTf7swzQMXba2E0OWpY4TtSk5iJiGzZcbAeD5bvFz2eycvkTQx6PGTfP/+FxpbLdr8voLMBaVVdo/dOSgJXkpiJiLrS1uhw/7b9DnsRdsXkZfI2Bj0eYDQJ+Ob4eVFj/TVoEFtZ2t9rDRGRbxhNApZ/cEjSPkxeJm9jIrObtDU6FG+vFd2k0x+DBrGVpQOh1hAR+cbD5dVoau0QPZ7Jy+QLDHrcoK3RYcnWalFTuQoAGj8NGsRWls67+Tp+KiOiHqRWXQaYvEy+waDHRUaTgOLttaIDHsCzBQqNJsFjdXHEPnJLiouSfGwiCm5Sqy4DwH2Tkpm8TD7BoMcOo0lAVV0jzl1sw8C+nTM0XQMKsaudgM4ZnqLpKR6r06Ot0WH5B4esppI3/vU4YqLCsfrukZLfh/k8ROQqKVWXAWBj3hjclZYo4xkR2cegxwZbeToJ3QIXsbMjS38xBI/cfqPHZni0NTr8dmu1ze81tXbgt1urJbV+MJoEbPmmzuk45vMQUXdSqy4vyxrGgId8iqu3ujHn6XSfxeleYFDsrMetQwd49JHWkyKmkZd/cEh0PaBXK46h+acrTscxn4eIupNadfmhrGEynxGRYwx6unCUp9O9wKC575ajMCC2Tzj0hjZUnrjgkaKEG3eJC1CaWjuwcddxh2OMJgHrPz+KDRXHRL0383mIqCupyctMXCZ/wKCnC2d5Ol0LDJr7bgGwG/g0tnTgkfcOYM7mPZi4ZpdbbSiMJgFvfHNS9Pg3vq2zG2hpa3QY+exneMVJYNQV83mIyExq8jKrLpO/YNDThdSqxGL6bpm523+rqq4RTT+Jr4HR1Nphs/qzOSdI7JQ0AMREhTOfh4gspCQvs+oy+RMGPV2Inc3oOi43NQF/e3IK3s2fgJd+PVq2/luuVHLeWWs99Sw2J6i7hbckc1qaiABIT15m1WXyJwx6unCWp6OA7VVMYcrOOjkadW/Z+m+JXVbe1UcH6q0CLLE5QV1FRYSxaioRWUhNXub9g/wJg54uHOXpiCkwKFfTTrFtIrq70HLZEmBJ/XRmdt+kIfyURkQAmLxMgY9BTzf28nQ06ki85qT+jSuPx8QQ2ybCFnOAtXHXMUl5PEBnLg8/pRERwORlCg4sTmhDbmoCbk/ROKzIbIv58Zi+uc3msndX+2+505n95PlWl2d5Vt89kp/SiAgAk5cpODDoscOcpyN1n6LpKViytRoKwCrwcaf/ljvLxcu/OwVBECTN8vRRheHFX432WNsMIgpsTF6mYMHHWx7mzuMxe/7V4tqjLaAzcXrz38TfrB76xVAcLMphwENEFkxepmDBmR4ZuPp4zBajScCqT4+4dT5ip6SXZQ3DI7ff4NZ7EVFwYfIyBRMGPW6y143dlcdjtkjp5u6OqIgw9sUhIitMXqZgw6DHDWK6sbvLnSRmKbg0nYi6Y/IyBRvm9LhITDd2o0lA5YkL+OjAWZebjnqj5xWfwRNRd0xepmDEmR4XOOvGrgCw/INDePbjWugN7s0CpSfHIiYqHE2t4vtuSfXr8T/jzYqIrDB5mYIRZ3pcIKYbe1Nrh1XAA7jWdHRnrV7WgAcAbk/RyHp8IgosTF6mYCVb0NPY2Ii5c+ciOjoaMTExWLRoES5duuRwn02bNuHnP/85oqOjoVAo0NTU5JHjepqreTZSm46aZ5QcUffuhX5R4S6dDwD07xPBDupEZMHkZQpmsgU9c+fOxeHDh7Fz50588skn+Oqrr7B48WKH+7S2tiI3NxdPPfWUR4/rae7k2UhpOipm5VbzT1cwYbDrq8RmpCXyExoRWTB5mYKZLEHPkSNHoNVq8V//9V/IyMjAxIkT8eqrr6K8vBz19fV293v44YexfPlyTJgwwaPH9TRn3djFEDNbJHZGaciAPi6fBx9tkb8qLS1FUlISIiMjkZGRgaqqKofj33//fQwfPhyRkZEYOXIkduzYYfV9QRCwcuVKJCQkoHfv3sjOzsaxY8fkvISAw+RlCnayBD2VlZWIiYnB+PHjLduys7OhVCqxd+9evzuuVI66sYslZrZI7IxS5uA4xPSW/ogrJiqcj7bIL7333nsoKChAUVERqqurMXr0aOTk5ODcuXM2x3/77beYM2cOFi1ahP3792PmzJmYOXMmampqLGNeeOEFvPLKKygrK8PevXvRp08f5OTkoK3NO2UhAoGUxsRMXqZAJEvQo9frMXDgQKttvXr1QmxsLPR68clxnjpue3s7DAaD1ctddttNRKsQExVuNxhSoHMVl5hgw7xyyx7zsSYM6Y+FtyaJPnezhbck81Ma+aX169cjPz8fCxcuREpKCsrKyhAVFYUtW7bYHP/yyy8jNzcXjz/+OEaMGIFVq1Zh7Nix2LhxI4DOWZ4NGzbgmWeewYwZMzBq1Ci8/fbbqK+vx4cffujFK/NfUmd5mLxMgUhS0LN8+XIoFAqHrx9++EGuc3VZSUkJ1Gq15TVo0CCPHDc3NQF/e3IK3s2fgJfz0vBu/gR8szwLq+8eCaDnLJDUpqPOVm4JXY61dMowhwFSd/yURv7q8uXL2LdvH7Kzsy3blEolsrOzUVlZaXOfyspKq/EAkJOTYxlfV1cHvV5vNUatViMjI8PuMQF5PjD5KylL1Jm8TIFKUp2eRx99FPfee6/DMYMHD4ZGo+kxDX3lyhU0NjZCo3E9h8TV4xYWFqKgoMDytcFg8FjgY6vdhHkWqHu1Zo2EOj1iVm7FRIVbcnLClAqsvnskfru1WtR581Ma+avz58/DaDQiPj7eant8fLzdD1V6vd7mePMMsPm/jsbYUlJSguLiYsnXEGikLFFn8jIFMklBz4ABAzBgwACn4zIzM9HU1IR9+/Zh3LhxAIBdu3bBZDIhIyPDtTN147gqlQoqlcrl93WFu01HxazcamrtQFVdoyXoyk1NQNm8sVj+wSGHM0T3TUrmpzQiEeT8wOQvpC5RZ/IyBTJZKjKPGDECubm5yM/PR1lZGTo6OrB06VLk5eUhMTERAHD27FlkZWXh7bffRnp6OoDOT2N6vR7Hjx8HABw6dAh9+/bFddddh9jYWFHH9SfuNB0Vu3Kr+zhzsLVx13G88U0dmn66GvzE9gnHczNSMXWU//1dEZnFxcUhLCwMDQ0NVtsbGhrszuhqNBqH483/bWhoQEJCgtWYtLQ0u+fiiw9M3iZliXpURBgfi1NAk61OzzvvvIPhw4cjKysLU6dOxcSJE7Fp0ybL9zs6OnD06FG0trZatpWVlWHMmDHIz88HAEyaNAljxozBxx9/LPq4wULsyi1b48KUCizLHoZ9K263yjf67unbGfCQ34uIiMC4ceNQUVFh2WYymVBRUYHMzEyb+2RmZlqNB4CdO3daxicnJ0Oj0ViNMRgM2Lt3r91jhgKpyctsTEyBTrbeW7Gxsdi2bZvd7yclJUEQrKsSP/vss3j22WfdOq6/MZoEUY+4uo+7cLHd6bGdrQJzZ6aJyJcKCgqwYMECjB8/Hunp6diwYQNaWlqwcOFCAMD8+fNx7bXXoqSkBACwbNkyTJ48GS+++CKmTZuG8vJyfP/995YPRAqFAg8//DCee+45DBs2DMnJyVixYgUSExMxc+ZMX12mz7G/FoUaNhyVkbZG1yOZ2VbT0R0HdXjmoxo0tly2bFOI+DC1Ypq4VWBEgWb27Nn48ccfsXLlSuj1eqSlpUGr1VoSkU+dOgWl8upE9S233IJt27bhmWeewVNPPYVhw4bhww8/RGpqqmXME088gZaWFixevBhNTU2YOHEitFotIiNdr7AeyNhfi0KRQug+3RICDAYD1Go1mpubER0dLct7aGt0WLK1ukcndvMt47V5Y5GbmoCSHbX441d1Lr3Hu/kTOJNDAcsbv4eeFojnbIvRJGBU8Weic3nuGpWAjfeMlfmsiJxz93eQMz0yMC83txVNCugMfIq31+LKFcHlgAdwvfEpEYU29teiUCVbInMoc7bc3Nx09LH//rtb7+NO41MiCk3sr0WhjEGPDMTOwLR1mFx+j/59Itg3i4gkY/IyhTIGPTLwxgzMjLREfvoiIkmYvEyhjjk9brC3HD09ORYJ6kjom9ts5vV4grn9BBGRGFIrL7O/FgUjBj0ucrYcvWh6CpZsrYYCsAp8un/tipiocD7aIiJJmLxMxMdbLjEvR++erKxvbsOSrdXQ1ugsTUc1autHXRp1JKaPcm+WZuEtyZxyJiLRmLxM1IkzPRKJXY5+e4rGZtPRcdf3w6QXdrn8/jFR4UwsJCJJmLxM1IkzPRKJXY5eVdcIAJYcn4F9I3HuYhv+X+VJ6A3OW0zYs/rukfwERkSiMXmZ6CrO9Egktfu5rdwfV/SLCkfJ3SOt2lcQETnC5GUiawx6HLC1OktK93N7rSjEeHrqcDT/1AGgs2nohMH9+emLiCRh8jKRNQY9dthbnbVi2giHy9EV6ExWHnd9P0xe+1eXAp4EdST+Y+JgBjlE5DImLxP1xJweGxytznpg2378cnTn9G/324P566LpKdj3z3+5/EiL3dOJyF1MXibqiUFPN85WZwHAx3/XofQe28vRzd3T3WkG2q9PhMv7EhExeZnINj7e6kbs6qx+fSLwtyen2KzIDLjXioLd04nIVUxeJrKPQU83UlZnhSk7k4xtcacVBbunE5GrmLxMZB8fb3UjZXWWI2FKBYqmp0gOeBLUkWwxQUQuYfIykWMMeroxz9DYuw0oID4wuT1Fg5iocEnvn3fzdbwJEZFLmLxM5BiDnm7MMzSA49VZYgKTqrpGNLV2SHr/pLgoSeOJiAAmLxOJwaDHBkfNQs2rs8RwJSGZ+TxEJBWTl4nEYSKzHbaahXZdnSWG1ACG+TxE5AomLxOJw6DHAUers8RIT45FbJ9wNLaIe8TFfB4ikorJy0Ti8fGWjMKUCvxb2rWixzOfh4ikYvIykXgMemSWnaIRPZb5PEQkBZOXiaRh0COz9ORYaKJVTscxn4eIpGDyMpF0DHpkFqZU4Nlf3uR0nNhl8EREAJOXiVzBoMcLclMTUDZvrM1Chf2iwlEmYRk8ERGTl4lcw9VbXmJeAr/nxAVU/uM8gM6VYRMG9+fNiIgkYfIykWsY9LjIaBIk1/AJUypw67A43DoszktnSUTB5pMDTF4mchWDHhdoa3Qo3l4LXfPVissJ6kgUTU/hYyoiks2Og/V4sHy/6PFMXiayxpweibQ1OizZWm0V8ACAvrkNS7ZWQ1uj89GZEVEw09bocP+2/RBEjmfyMlFPsgU9jY2NmDt3LqKjoxETE4NFixbh0qVLDvfZtGkTfv7znyM6OhoKhQJNTU09xiQlJUGhUFi9Vq9eLdNVWDOaBBRvr7V50zFvK95eC6NJ7G2JiMg5o0nA8g8OSdqHyctEPckW9MydOxeHDx/Gzp078cknn+Crr77C4sWLHe7T2tqK3NxcPPXUUw7H/e53v4NOp7O8HnzwQU+eul1VdY09Zni6EgDomttQVdfolfMhotCwcdcxNLWKa2cDMHmZyB5ZcnqOHDkCrVaL7777DuPHjwcAvPrqq5g6dSrWrVuHxMREm/s9/PDDAIDdu3c7PH7fvn2h0YivdOwpYrumu9JdnYjIFqnL0wEmLxPZI8tMT2VlJWJiYiwBDwBkZ2dDqVRi7969bh9/9erV6N+/P8aMGYO1a9fiypUrDse3t7fDYDBYvVwhtk0E20kQkadIWZ4OAPdNSmbyMpEdssz06PV6DBw40PqNevVCbGws9HrxSy1teeihhzB27FjExsbi22+/RWFhIXQ6HdavX293n5KSEhQXF7v1vkBnS4kEdST0zW0283oUADRsJ0FEHiK1t9bGvDG4K832TDoRSZzpWb58eY8k4u6vH374Qa5zBQAUFBTg5z//OUaNGoXf/va3ePHFF/Hqq6+ivb3d7j6FhYVobm62vE6fPu3Se4cpFSiangKgM8Dpyvw120kQkSdI7a21LGsYAx4iJyTN9Dz66KO49957HY4ZPHgwNBoNzp07Z7X9ypUraGxs9HguTkZGBq5cuYKTJ0/ixhtvtDlGpVJBpXLe9FOM3NQEvDZvbI86PRrW6SEiD5LSWysqIgwPZQ2T+YyIAp+koGfAgAEYMGCA03GZmZloamrCvn37MG7cOADArl27YDKZkJGR4dqZ2nHgwAEolcoej9PkZG4pIbUiMxGRGFKTl++bNIT3HyIRZMnpGTFiBHJzc5Gfn4+ysjJ0dHRg6dKlyMvLs6zcOnv2LLKysvD2228jPT0dQGcukF6vx/HjxwEAhw4dQt++fXHdddchNjYWlZWV2Lt3L37xi1+gb9++qKysxCOPPIJ58+ahX79+clyKXWHKzt5ZRESext5aRPKQrU7PO++8g+HDhyMrKwtTp07FxIkTsWnTJsv3Ozo6cPToUbS2tlq2lZWVYcyYMcjPzwcATJo0CWPGjMHHH38MoPMxVXl5OSZPnoybbroJzz//PB555BGr4xIRBTKpyctcnk4knkIQhJArH2wwGKBWq9Hc3Izo6Ghfnw5RSArE30O5z9loEjCq+DPRuTx3jUrAxnvGevw8iPyVu7+DbDjqhCvd1ImIXCEleZm9tYikY9DjALupE5G3SE1eZm8tIunYZd0OdlMnIm9i8jKR/Bj02MBu6kTkTUxeJvIOBj02sJs6EXmL1MrLd41KYG8tIhcx6LGB3dSJyFuYvEzkPQx6bGA3dSLyBiYvE3kXgx4bzN3UHd1aYnqHwyQIzOshIpcxeZnIuxj02OCom7pZ008dmPtfezFxzS6u5CIiyZi8TOR9DHrsMHdT16gdP8LiEnYikorJy0S+waDHgdzUBPztySl4Z1EGYnqH2xzDJexEJBWTl4l8g0GPE2FKBZRKBZp+6rA7hkvYiUgsJi8T+Q6DHhG4hJ2IPIXJy0S+w6BHBC5hJyJPYPIykW8x6BHB2RJ2BTobkaYnx3rztIgogDB5mcj3GPSI4GgJu/nroukp/ERGRHYxeZnI9xj0iGRvCbtGHYnX5o1Fbio/kRGRbUxeJvIPvXx9AoEkNzUBt6doUFXXiHMX2zCwb+cjLd6ciMgRJi8T+QcGPRKFKRXIHNLf16dBRAGCyctE/oOPt4iIZMLkZSL/wpkeEYwmgY+0iEgyJi8T+RcGPU5oa3Qo3l4LXfPVwoMxvcOx8NYkLJ0yjMEPEdnE5GUi/8PHWw5oa3RYsrXaKuABOjusv/TFMYx7bicbjRKRTUxeJvI/DHrsMJoEFG+vhaMWok2tHeywTuRhjY2NmDt3LqKjoxETE4NFixbh0qVLDvdpa2vDAw88gP79++Oaa67BrFmz0NDQYDVGoVD0eJWXl8tyDUxeJvJPDHrsqKpr7DHDY4sAdlgn8qS5c+fi8OHD2LlzJz755BN89dVXWLx4scN9HnnkEWzfvh3vv/8+vvzyS9TX1+Puu+/uMe6NN96ATqezvGbOnOnx82fyMpH/Yk6PHVKah5o7rHMpO5F7jhw5Aq1Wi++++w7jx48HALz66quYOnUq1q1bh8TExB77NDc34/XXX8e2bdswZcoUAJ3BzYgRI7Bnzx5MmDDBMjYmJgYajUbWa2DyMpH/4kyPHVKbh7LDOpH7KisrERMTYwl4ACA7OxtKpRJ79+61uc++ffvQ0dGB7Oxsy7bhw4fjuuuuQ2VlpdXYBx54AHFxcUhPT8eWLVsgCJ6doWXyMpF/40yPHeYmo2IecQHssE7kCXq9HgMHDrTa1qtXL8TGxkKvt50jo9frERERgZiYGKvt8fHxVvv87ne/w5QpUxAVFYXPP/8c999/Py5duoSHHnrI7vm0t7ejvb3d8rXBYHB4/kxeJvJvnOmxo2uTUWfYYZ3IseXLl/dIIlar1QAAtVoNhUKBH374QdZzWLFiBW699VaMGTMGTz75JJ544gmsXbvW4T4lJSVQq9WW16BBg+yOZfIykf9j0OPA7SkaxESFOx23Yho7rBM58uijj+LIkSNWr++++w4A8N133+HIkSMYPHgwNBoNzp07Z7XvlStX0NjYaDcXR6PR4PLly2hqarLa3tDQ4DB/JyMjA2fOnLGayemusLAQzc3Nltfp06dtjjOaBDzzUY3d43TH5GUi3+DjLQeq6hrR1NrhdFy/PhFeOBuiwDVgwAAMGDDAapv5UdENN9yA6OhoAEBmZiaampqwb98+jBs3DgCwa9cumEwmZGRk2Dz2uHHjEB4ejoqKCsyaNQsAcPToUZw6dQqZmZl2z+nAgQPo168fVCqV3TEqlcrh982q6hrR2OL8XgEweZnIlxj0OCA2OZlJzESeMWLECOTm5iI/Px9lZWXo6OjA0qVLkZeXZ1m5dfbsWWRlZeHtt99Geno61Go1Fi1ahIKCAsTGxiI6OhoPPvggMjMzLSu3tm/fjoaGBkyYMAGRkZHYuXMnfv/73+Oxxx7zyHlLuQcweZnId2R9vCW1yFhjYyMefPBB3Hjjjejduzeuu+46PPTQQ2hubrYad+rUKUybNg1RUVEYOHAgHn/8cVy5csXj5y82OZlJzESe884772D48OHIysrC1KlTMXHiRGzatMny/Y6ODhw9ehStra2WbS+99BLuuusuzJo1C5MmTYJGo8EHH3xg+X54eDhKS0uRmZmJtLQ0/PGPf8T69etRVFTkkXMWew9g8jKRb8k60zN37lzodDrs3LkTHR0dWLhwIRYvXoxt27bZHF9fX4/6+nqsW7cOKSkp+Oc//4nf/va3qK+vx5///GcAgNFoxLRp06DRaPDtt99Cp9Nh/vz5CA8Px+9//3uPnr95BZe+uc1mZWYFAA2TmIk8KjY21u49AgCSkpJ6LDWPjIxEaWkpSktLbe6Tm5uL3Nxcj55nV2JXezJ5mci3FIKnC1X8nyNHjiAlJcWqyJhWq8XUqVNx5swZm0XGbHn//fcxb948tLS0oFevXvif//kf3HXXXaivr0d8fDwAoKysDE8++SR+/PFHREQ4z68xGAxQq9Vobm625BLYY+6/BcAq8DHftl6bNxa5qUxIJJJKyu+hv3B0zuZ7hb0b6n2TklE4VdyKUCKyzd37hmyPt1wpMmaL+cJ69eplOe7IkSMtAQ8A5OTkwGAw4PDhw567gP+Tm5qA1+aNhUZtPX2tUUcy4CEiC/O9IqHbvSK2Tzj+cM8YBjxEfkC2x1uuFBnr7vz581i1apVV3x29Xm8V8ACwfG3vuFILjHWXm5qA21M0qKprxLmLbRjYt/ORFqepiagr3iuI/JvkoGf58uVYs2aNwzFHjhxx+YTMDAYDpk2bhpSUFDz77LNuHaukpATFxcVuHSNMqWBvLSJyivcKIv8lOeh59NFHce+99zoc42qRMbOLFy8iNzcXffv2xV/+8heEh18tEKjRaFBVVWU1vqGhwfI9WwoLC1FQUGD52mAwOKysSkRERMFHctBjq8iYLa4UGQM6A5KcnByoVCp8/PHHiIy0fj6emZmJ559/HufOnbM8Ptu5cyeio6ORkmL7mbnYAmNEREQUvGRLZO5aZKyqqgrffPONzSJjw4cPt8zcGAwG3HHHHWhpacHrr78Og8EAvV4PvV4Po7Gzid8dd9yBlJQU/OY3v8Hf//53fPbZZ3jmmWfwwAMPMLAhIiIiu2St0/POO+9g6dKlyMrKglKpxKxZs/DKK69Yvt+9yFh1dbVlZdfQodYFvOrq6pCUlISwsDB88sknWLJkCTIzM9GnTx8sWLAAv/vd7+S8FCIiIgpwstXp8WeBWB+EKNgE4u9hIJ4zUTDx2zo9RERERP6EQQ8RERGFBAY9REREFBIY9BAREVFIkHX1lr8y525LbUdBRJ5j/v0LpLUUvHcQ+Za7942QDHouXrwIAKzKTOQHLl68CLVa7evTEIX3DiL/4Op9IySXrJtMJtTX16Nv375QKOw3AjS3qzh9+nRQLE8NpuvhtfgnKdciCAIuXryIxMREKJWB8aQ9FO8dvBb/FUzXI/Za3L1vhORMj1KpxM9+9jPR46OjowP+f6iugul6eC3+Sey1BMoMj1ko3zt4Lf4rmK5HzLW4c98IjI9XRERERG5i0ENEREQhgUGPAyqVCkVFRUHTyDSYrofX4p+C6VrcEUx/D7wW/xVM1+OtawnJRGYiIiIKPZzpISIiopDAoIeIiIhCAoMeIiIiCgkMeoiIiCgkhFzQU1paiqSkJERGRiIjIwNVVVUOx7///vsYPnw4IiMjMXLkSOzYscPq+4IgYOXKlUhISEDv3r2RnZ2NY8eOyXkJFlKuZfPmzbjtttvQr18/9OvXD9nZ2T3G33vvvVAoFFav3NxcuS8DgLRrefPNN3ucZ2RkpNUYX/5cAGnX8/Of/7zH9SgUCkybNs0yxhc/m6+++grTp09HYmIiFAoFPvzwQ6f77N69G2PHjoVKpcLQoUPx5ptv9hgj9XfQHwTTfQPgvcNf7x3BcN8A/PzeIYSQ8vJyISIiQtiyZYtw+PBhIT8/X4iJiREaGhpsjv/mm2+EsLAw4YUXXhBqa2uFZ555RggPDxcOHTpkGbN69WpBrVYLH374ofD3v/9d+OUvfykkJycLP/30k19dyz333COUlpYK+/fvF44cOSLce++9glqtFs6cOWMZs2DBAiE3N1fQ6XSWV2Njo6zX4cq1vPHGG0J0dLTVeer1eqsxvvq5uHI9Fy5csLqWmpoaISwsTHjjjTcsY3zxs9mxY4fw9NNPCx988IEAQPjLX/7icPw//vEPISoqSigoKBBqa2uFV199VQgLCxO0Wq1ljNS/G38QTPcNV66H9w7/vKf7631DEPz73hFSQU96errwwAMPWL42Go1CYmKiUFJSYnP8r3/9a2HatGlW2zIyMoT77rtPEARBMJlMgkajEdauXWv5flNTk6BSqYR3331Xhiu4Suq1dHflyhWhb9++wltvvWXZtmDBAmHGjBmePlWnpF7LG2+8IajVarvH8+XPRRDc/9m89NJLQt++fYVLly5ZtvnqZ2Mm5sb1xBNPCDfddJPVttmzZws5OTmWr939u/GFYLpvCALvHf567wjG+4Yg+N+9I2Qeb12+fBn79u1Ddna2ZZtSqUR2djYqKytt7lNZWWk1HgBycnIs4+vq6qDX663GqNVqZGRk2D2mJ7hyLd21traio6MDsbGxVtt3796NgQMH4sYbb8SSJUtw4cIFj557d65ey6VLl3D99ddj0KBBmDFjBg4fPmz5nq9+LoBnfjavv/468vLy0KdPH6vt3v7ZSOXs98UTfzfeFkz3DYD3DsA/7x2hfN8AvHvvCJmg5/z58zAajYiPj7faHh8fD71eb3MfvV7vcLz5v1KO6QmuXEt3Tz75JBITE63+J8rNzcXbb7+NiooKrFmzBl9++SXuvPNOGI1Gj55/V65cy4033ogtW7bgo48+wtatW2EymXDLLbfgzJkzAHz3cwHc/9lUVVWhpqYG//mf/2m13Rc/G6ns/b4YDAb89NNPHvn/1tuC6b4B8N7hr/eOUL5vAN69d4Rkl/VQt3r1apSXl2P37t1WSXx5eXmWP48cORKjRo3CkCFDsHv3bmRlZfniVG3KzMxEZmam5etbbrkFI0aMwB//+EesWrXKh2fmvtdffx0jR45Eenq61fZA+dlQcOO9wz/xviFeyMz0xMXFISwsDA0NDVbbGxoaoNFobO6j0Wgcjjf/V8oxPcGVazFbt24dVq9ejc8//xyjRo1yOHbw4MGIi4vD8ePH3T5ne9y5FrPw8HCMGTPGcp6++rkA7l1PS0sLysvLsWjRIqfv442fjVT2fl+io6PRu3dvj/ysvS2Y7hsA7x3d+cu9I5TvG4B37x0hE/RERERg3LhxqKiosGwzmUyoqKiwivy7yszMtBoPADt37rSMT05OhkajsRpjMBiwd+9eu8f0BFeuBQBeeOEFrFq1ClqtFuPHj3f6PmfOnMGFCxeQkJDgkfO2xdVr6cpoNOLQoUOW8/TVzwVw73ref/99tLe3Y968eU7fxxs/G6mc/b544mftbcF03wB47+jOX+4doXzfALx875CU9hzgysvLBZVKJbz55ptCbW2tsHjxYiEmJsayZPE3v/mNsHz5csv4b775RujVq5ewbt064ciRI0JRUZHNpacxMTHCRx99JBw8eFCYMWOG15Y3SrmW1atXCxEREcKf//xnq+WLFy9eFARBEC5evCg89thjQmVlpVBXVyd88cUXwtixY4Vhw4YJbW1tfnUtxcXFwmeffSacOHFC2Ldvn5CXlydERkYKhw8ftrpeX/xcXLkes4kTJwqzZ8/usd1XP5uLFy8K+/fvF/bv3y8AENavXy/s379f+Oc//ykIgiAsX75c+M1vfmMZb152+vjjjwtHjhwRSktLbS47dfR344+C6b7hyvXw3uGf93Qzf7tvmN/bX+8dIRX0CIIgvPrqq8J1110nRERECOnp6cKePXss35s8ebKwYMECq/F/+tOfhBtuuEGIiIgQbrrpJuHTTz+1+r7JZBJWrFghxMfHCyqVSsjKyhKOHj3qjUuRdC3XX3+9AKDHq6ioSBAEQWhtbRXuuOMOYcCAAUJ4eLhw/fXXC/n5+V77x0jKtTz88MOWsfHx8cLUqVOF6upqq+P58uciCNL/P/vhhx8EAMLnn3/e41i++tn89a9/tfn/jPncFyxYIEyePLnHPmlpaUJERIQwePBgq5ohZo7+bvxVMN03BIH3Dn+9dwTDfUMQ/PveoRAEQZA2N0REREQUeEImp4eIiIhCG4MeIiIiCgkMeoiIiCgkMOghIiKikMCgh4iIiEICgx4iIiIKCQx6iIiIKCQw6CEiIqKQwKCHiIiIQgKDHiIiIgoJDHqIiIgoJDDoISIiopDw/wEkh5r6jpBurgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "upredt0 = model(torch.cat((beta0_vec, vec), 1))\n",
    "# print(activation['k0'].shape)\n",
    "\n",
    "plt.subplot(121)\n",
    "plt.scatter(np.linspace(0, 1, nx + 1), torch.mean(activation['k0'][0], axis=0))\n",
    "plt.subplot(122)\n",
    "plt.scatter(np.linspace(0, 1, nx + 1), torch.mean(activation['w0'][0], axis=0))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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giDg6aefRmxsLMLDw5GVlYUTJ07I+RZMpLyX9evX45ZbbsHAgQMxcOBAZGVl9Rl/3333QaFQmD1ycnLkfhsmUt7P22+/3edcw8LCzMb4yvfmtttu6/NeFAoFZsyYYRrjqe/Nnj17cMcddyAuLg4KhQLvv/++3dd8/vnnGDduHFQqFYYPH4633367zxipv4fegNcO77x28LrB64Ykgp/YunWrEBoaKrz11ltCdXW1kJ+fL0RFRQk//PCDxfH79u0TgoKChOeee06oqakRnnrqKSEkJEQ4evSoacwzzzwjqNVq4f333xe+/vpr4Ve/+pWQmJgoXLp0yaveyz333CO88sorwqFDh4Ta2lrhvvvuE9RqtfD999+bxtx7771CTk6O0NjYaHrodDpZ34ej72fDhg1CZGSk2blqtVqzMb7yvTl//rzZ+6iqqhKCgoKEDRs2mMZ46nuze/du4cknnxT+8Y9/CACE7du32xx/6tQpoV+/fsLixYuFmpoaYe3atUJQUJBQXFxsGiP16+MNeO3wzmsHrxu8bki9bvhNQJOeni48+OCDpn/r9XohLi5OWLVqlcXxd911lzBjxgyz5yZNmiQsXLhQEARBMBgMgkajEZ5//nnTx5uamgSVSiW88847MryDq6S+l966urqEAQMGCH/7299Mz917773CzJkzXX2qokh9Pxs2bBDUarXV4/ny9+aFF14QBgwYILS2tpqe8+T3xkjMhen3v/+98LOf/czsubvvvluYPn266d/Ofn08gdeOq7zp2sHrxlW8bojjF0tOV65cwcGDB5GVlWV6TqlUIisrC2VlZRZfU1ZWZjYeAKZPn24aX1dXB61WazZGrVZj0qRJVo/pCo68l97a29vR2dmJ6Ohos+c///xzDB48GKNGjcKiRYtw/vx5l567JY6+n9bWVlx//fWIj4/HzJkzUV1dbfqYL39v3nzzTcyePRv9+/c3e94T3xup7P3OuOLr4268dpjzlmsHrxvmeN0Qxy8CmnPnzkGv12PIkCFmzw8ZMgRardbia7Rarc3xxv9KOaYrOPJeenviiScQFxdn9gOSk5ODjRs34tNPP8Wzzz6LL774Ar/4xS+g1+tdev69OfJ+Ro0ahbfeegs7duzApk2bYDAYcNNNN+H7778H4Lvfm/LyclRVVeF3v/ud2fOe+t5IZe13pqWlBZcuXXLJz6678dphzluuHbxuXMXrhnjBTp8teZVnnnkGW7duxeeff26WEDd79mzT/48ZMwZpaWlISkrC559/jszMTE+cqlUZGRnIyMgw/fumm25CcnIyXn/9daxYscKDZ+acN998E2PGjEF6errZ8770vSH/5evXDl43vPP74k5+MUMzaNAgBAUF4YcffjB7/ocffoBGo7H4Go1GY3O88b9SjukKjrwXo9WrV+OZZ57BP//5T6SlpdkcO2zYMAwaNAjffPON0+dsizPvxygkJAQ33nij6Vx98XvT1taGrVu3Yv78+XY/j7u+N1JZ+52JjIxEeHi4S77X7sZrRzdvu3bwutGN1w1p3xe/CGhCQ0Mxfvx4fPrpp6bnDAYDPv30U7OIvaeMjAyz8QBQUlJiGp+YmAiNRmM2pqWlBQcOHLB6TFdw5L0AwHPPPYcVK1aguLgYEyZMsPt5vv/+e5w/fx6xsbEuOW9rHH0/Pen1ehw9etR0rr72vQG6t/l2dHRg7ty5dj+Pu743Utn7nXHF99rdeO3wzmsHrxvdeN2Q+H2RlELsxbZu3SqoVCrh7bffFmpqaoQFCxYIUVFRpm17v/nNb4TCwkLT+H379gnBwcHC6tWrhdraWmHp0qUWt15GRUUJO3bsEI4cOSLMnDnTbVv8pLyXZ555RggNDRXee+89sy18Fy9eFARBEC5evCj893//t1BWVibU1dUJn3zyiTBu3DhhxIgRwuXLl2V9L468n+XLlwsff/yxcPLkSeHgwYPC7NmzhbCwMKG6utrsPfvC98ZoypQpwt13393neU9+by5evCgcOnRIOHTokABA+Mtf/iIcOnRI+PbbbwVBEITCwkLhN7/5jWm8cfvl448/LtTW1gqvvPKKxe2Xtr4+3ojXDu+8dvC6weuG1OuG3wQ0giAIa9euFYYOHSqEhoYK6enpwldffWX62K233irce++9ZuP/7//+Txg5cqQQGhoq/OxnPxN27dpl9nGDwSD84Q9/EIYMGSKoVCohMzNTOH78uDveiqT3cv311wsA+jyWLl0qCIIgtLe3C9nZ2UJMTIwQEhIiXH/99UJ+fr5b/8hIeT+PPvqoaeyQIUOE3NxcobKy0ux4vvK9EQRBOHbsmABA+Oc//9nnWJ783nz22WcWf26M53/vvfcKt956a5/XjB07VggNDRWGDRtmVhfDyNbXx1vx2uGd1w5eN3jdkEIhCIIgbU6HiIiIyLv4RQ4NERERBTYGNEREROTzGNAQERGRz2NAQ0RERD6PAQ0RERH5PAY0RERE5PMY0BAREZHPY0BDREREPo8BDREREfk8BjRERETk8xjQEBERkc/7/wHjr/hl/39oFQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.subplot(121)\n",
    "plt.scatter(np.linspace(0, 1, nx + 1), torch.mean(activation['k1'][0], axis=0))\n",
    "plt.subplot(122)\n",
    "plt.scatter(np.linspace(0, 1, nx + 1), torch.mean(activation['w1'][0], axis=0))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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8rd2N143WintugHw2mHEa4f4vwuDojaCg4MxevRo7N692/SYwWDA7t27ze4c2oqPjzdrDwDZ2dmm9lFRUdDpdGZtampqcPDgQav7dAY57wUAXnnlFSxduhRZWVkYM2aM3dc5d+4cLl++jIiICKcctyVy30tbLS0tOHbsmOk4ve3vArRO4W5oaMBDDz1k93Xc8XeRw97nxRl/a3fjdUOZ1w2A1w4jXjsk/F1Ep2T7ia1btwoajUb44IMPhOLiYiE9PV0IDQ01Tcn83e9+JyxYsMDUfv/+/UJgYKCwcuVKoaSkRFi0aJHFqbWhoaHCtm3bhKNHjwrTp0932/RNKe9l+fLlQnBwsPDpp5+aTc+8evWqIAiCcPXqVeGPf/yjkJubK5SVlQm7du0SRo0aJQwePFi4du2aot7LkiVLhK+++ko4ffq0UFBQIMycOVPo1KmTcPz4cbP36w1/F6Px48cL999/f4fHPfl3uXr1qnD48GHh8OHDAgDh9ddfFw4fPiz88MMPgiAIwoIFC4Tf/e53pvbGabXPPPOMUFJSIrz99tsWp9Xa+vdRIl43lHndkPN+eO3w72sHgyILVq9eLfTr108IDg4Wxo4dKxw4cMD03B133CE8/PDDZu3//ve/CzfeeKMQHBwsDB06VNixY4fZ8waDQVi4cKHQp08fQaPRCFOmTBFOnjzpjrci6b3ccMMNAoAOP4sWLRIEQRDq6+uFO++8U+jdu7cQFBQk3HDDDUJaWprbvqykvJenn37a1LZPnz5CcnKycOjQIbP9ecvfRRAE4cSJEwIA4euvv+6wL0/+Xfbs2WPxnDEe/8MPPyzccccdHbYZMWKEEBwcLAwYMMCsZoqRrX8fpeJ1Q5nXDanvh9cO/752qARBECT1YRERERH5IOYUEREREYFBEREREREABkVEREREABgUEREREQFgUEREREQEgEEREREREQAGRUREREQAGBQRERERAWBQRERERASAQRERERERAAZFRERERAAYFBEREREBAP4/CVcvR1ZyIO8AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.subplot(121)\n",
    "plt.scatter(np.linspace(0, 1, nx + 1), torch.mean(activation['k2'][0], axis=0))\n",
    "plt.subplot(122)\n",
    "plt.scatter(np.linspace(0, 1, nx + 1), torch.mean(activation['w2'][0], axis=0))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.subplot(121)\n",
    "plt.scatter(np.linspace(0, 1, nx + 1), torch.mean(activation['k3'][0], axis=0))\n",
    "plt.subplot(122)\n",
    "plt.scatter(np.linspace(0, 1, nx + 1), torch.mean(activation['w3'][0], axis=0))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor([-7.8060e-02, -1.2640e-01, -1.6325e-01, -1.8604e-01, -1.9403e-01,\n",
       "        -1.8830e-01, -1.7150e-01, -1.4745e-01, -1.2046e-01, -9.4769e-02,\n",
       "        -7.3942e-02, -6.0418e-02, -5.5280e-02, -5.8242e-02, -6.7837e-02,\n",
       "        -8.1784e-02, -9.7436e-02, -1.1225e-01, -1.2418e-01, -1.3197e-01,\n",
       "        -1.3523e-01, -1.3441e-01, -1.3060e-01, -1.2522e-01, -1.1972e-01,\n",
       "        -1.1527e-01, -1.1259e-01, -1.1179e-01, -1.1251e-01, -1.1394e-01,\n",
       "        -1.1514e-01, -1.1520e-01, -1.1347e-01, -1.0973e-01, -1.0419e-01,\n",
       "        -9.7476e-02, -9.0496e-02, -8.4241e-02, -7.9593e-02, -7.7156e-02,\n",
       "        -7.7144e-02, -7.9351e-02, -8.3203e-02, -8.7882e-02, -9.2485e-02,\n",
       "        -9.6199e-02, -9.8442e-02, -9.8952e-02, -9.7808e-02, -9.5380e-02,\n",
       "        -9.2225e-02, -8.8950e-02, -8.6072e-02, -8.3916e-02, -8.2545e-02,\n",
       "        -8.1768e-02, -8.1190e-02, -8.0320e-02, -7.8687e-02, -7.5960e-02,\n",
       "        -7.2027e-02, -6.7038e-02, -6.1382e-02, -5.5623e-02, -5.0391e-02,\n",
       "        -4.6266e-02, -4.3671e-02, -4.2793e-02, -4.3551e-02, -4.5618e-02,\n",
       "        -4.8486e-02, -5.1557e-02, -5.4253e-02, -5.6112e-02, -5.6853e-02,\n",
       "        -5.6405e-02, -5.4891e-02, -5.2578e-02, -4.9801e-02, -4.6881e-02,\n",
       "        -4.4057e-02, -4.1445e-02, -3.9023e-02, -3.6664e-02, -3.4180e-02,\n",
       "        -3.1394e-02, -2.8198e-02, -2.4605e-02, -2.0764e-02, -1.6944e-02,\n",
       "        -1.3496e-02, -1.0782e-02, -9.1034e-03, -8.6370e-03, -9.3903e-03,\n",
       "        -1.1189e-02, -1.3696e-02, -1.6465e-02, -1.9009e-02, -2.0881e-02,\n",
       "        -2.1739e-02, -2.1401e-02, -1.9864e-02, -1.7289e-02, -1.3965e-02,\n",
       "        -1.0250e-02, -6.5015e-03, -3.0168e-03,  9.9868e-06,  2.5086e-03,\n",
       "         4.5266e-03,  6.1994e-03,  7.7052e-03,  9.2152e-03,  1.0848e-02,\n",
       "         1.2642e-02,  1.4542e-02,  1.6416e-02,  1.8082e-02,  1.9356e-02,\n",
       "         2.0086e-02,  2.0203e-02,  1.9730e-02,  1.8797e-02,  1.7617e-02,\n",
       "         1.6456e-02,  1.5588e-02,  1.5247e-02,  1.5595e-02,  1.6687e-02,\n",
       "         1.8468e-02,  2.0786e-02,  2.3415e-02,  2.6100e-02,  2.8597e-02,\n",
       "         3.0715e-02,  3.2343e-02,  3.3462e-02,  3.4146e-02,  3.4535e-02,\n",
       "         3.4803e-02,  3.5119e-02,  3.5609e-02,  3.6326e-02,  3.7235e-02,\n",
       "         3.8216e-02,  3.9085e-02,  3.9632e-02,  3.9662e-02,  3.9043e-02,\n",
       "         3.7740e-02,  3.5841e-02,  3.3550e-02,  3.1169e-02,  2.9049e-02,\n",
       "         2.7534e-02,  2.6896e-02,  2.7277e-02,  2.8658e-02,  3.0846e-02,\n",
       "         3.3500e-02,  3.6193e-02,  3.8492e-02,  4.0048e-02,  4.0690e-02,\n",
       "         4.0480e-02,  3.9736e-02,  3.9001e-02,  3.8956e-02,  4.0293e-02,\n",
       "         4.3564e-02,  4.9024e-02,  5.6520e-02,  6.5424e-02,  7.4659e-02,\n",
       "         8.2814e-02,  8.8337e-02,  8.9792e-02,  8.6136e-02,  7.6977e-02,\n",
       "         6.2747e-02,  4.4774e-02,  2.5204e-02,  6.7788e-03, -7.5144e-03,\n",
       "        -1.4876e-02, -1.3151e-02, -1.2384e-03,  2.0621e-02,  5.0732e-02,\n",
       "         8.6035e-02,  1.2242e-01,  1.5521e-01,  1.7975e-01,  1.9207e-01,\n",
       "         1.8943e-01,  1.7078e-01,  1.3692e-01,  9.0512e-02,  3.5710e-02,\n",
       "        -2.2315e-02])"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "torch.mean(activation['k0'][0], axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.8"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "9b3b15e79d64212a14c381e1bc9a41101994b32312634469deb1a16fd6054240"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
